TLDR: I built a model that has only one parameter and gets 100% on ARC-AGI-2, the million-dollar reasoning benchmark that stumps ChatGPT. Using chaos theory and some deliberate cheating, I crammed every answer into a single number 260,091 digits long.
p=8
len(alpha)=260091 digits
alpha=0.76059909954446680055519182637612404564952882608728406710332547552128446698293425221832975998898637236392205440417981617949548706406387030215295746057916672370704613139993102981520849196296541741232578489544689528846131754394446902690191625779049723017787574644995645998191196995652299872827305403826756449151125077232068806629551684890541253359837329652493258169800543968350639741142817814171771642248712635256943748361193985927343404950453292524945805333934593051464400368944775599614089386320090273869491583657873220635267085752381431568997047115636182977812657757703361060373156080128282582144284187660985488238464936573395047573286639794573061683106383780627206026056150656838337588742335170670163421547280089023114092731598196680570418789874360527785012620300750930571954145011629243254516400206074041792073533356634146282504823968716433512687354617522447535226537565807236324564511110530062555438093437991795253214900545506687774536460148324596924222765480221641621437626327952134561001137023114376121540714156077998979093947571760303967431735253560946726570431340478430446602897672186508688227963721583043604075440291847665238470622066363109790582849794551747780485489595489733526399388459089360532382024529983473279000118880550004458935134473467937295051711283017650338558799208485823692220113215500266839592398203647032543908678681690879298999981442507542699041885524438564023588682378780079564157156045238634045398695077157108768698635811519895727218480343642120199553556922633561513832993044251371733496713714038013023954617181980966126968599387312241882727248751576631562411547791297718419456595377424699163855402216397498164401130962968790610811366593327400604013568472112487874809243504048659211852460086449909371510922263800983013104904627190443959378599852522275841718258587191805316977713078922928979606542956843709965037688753815417491928819404900356691314870543851739837241147833212652252936159211863971744398094927646740679199631006426174223380727505335307167988032644482607296973649537963162183440473216940605032558101492556872708356280796276003648091179335379035258289160415302359363858900666153704691764931925925534406272390086086237329041610751547532019997897493078792907406941578146573475206151497477485229315269180219574632906375189695908689730230717428916617325031998926780420806061386666046378583550071837247219466671697801843275332629753429308619047895535595684965817408085518888469910885027747090610603268324756078382749082990796132294651696881962928843629666725462682052451754753210899245133102912862225695572223573065210237545360047657039153983266072141586295117635668640223145638447889078773869374500518526813523569610350738113091270685978352989525552843022947752887419320518566118681697782148121899491792256309190853432950405647536031737543390421102237554138964154770691717834238142835295903088016342454100425770493220937550307457687387407409126952330334735420567375549795107901955493785165495953409323894060830435620570206635849734662458737137483566337649534813334036348785228898195429450462856437144411867635374055751693375071803133807123831194651089909562997282413021342896561111606763292751884999306433844319748614157717565114832200109899469975816243813734116195852267016018802776752909623986709057339404407174549479917623262292240692002948370839150438273618393548860906396549033845355030052330412431992551370306302513601841256455352161676868724062742771044714295698520709295655308658285122710482792611122497388344593857474560674622871831336277084951405000971113340387563469498883887914139569735935236194021553028097485092302193506412589956409691851635642983987557063969527137748846851575268282918423430404714076185770651479593680730853234713962389176638219778886764674683880048309236507035373824040232233029653571112335890752198564060769684218360193945775160795150387853632496549813389083360477029277096925068714425757948063374241049937951042803950342033445371303446297868003510919059361392419647184606546262096418104251841412863845536203737205379212842289342292425511612761797538648763406643439484569320659994291100675343273494669834294803734900203737013417100118038378603369901381043977052704473311759416532482038269394632551113175893258270851602265446447153690360333251382016326750069857718712564112021845023970168381605698323370567169959382223112364162500269668256178549619453546360694675626436892488960735152429417700094916671647123637211445155968709499281655596987120695031551539821456765527088897416280303321025535004008268548802003627233782548010446344265286141915222903410738787642286337933982028810804614620125176438395819871970310118074213659161270060303320147119740836883503451883920252341235864479602200143227174386696981900286498662348078264892352177818224004514752719165951094725795533280934772262927043111481494055926359424235970372517366815655300580013381348371759046046757473872400568034434821922993214630315067626807995383783042059170832893457171236288972797216424484243452006314419875885003142696934614100686515162788694105289772813597152167946168786411249023743671931125014764497751746904121124768439753373523227956202640430097973548435354421886542664469609014595268032114191836055029851062320977153773519695423715145616656763470440175259897425518305743905458086381771427323082710416295272874800283981121797120387330285020531180553330873675973570329780940699892742659404700958312842654586541380065209576923861953494953244980589742400910631653909675098367373824932315128757405422051078783149635657283367454784236047812606123857121673521141126766180764298752559700776860395728257996327358401478326259259581959799308176211406304030132166284562177971066260407527995949612839043009242449428647277062867168836292110234255156931233274729663376277524208114248267584966459255180803428756039291103438018453955386531039465367863091803176115996981580478418519447947178777991641391483748965509969338227280424957069644781368246006940789745400817158831463264620202428306475038428611078677821771576377491124868731029308476997399021578735567393066015642577983921537588625044630586559382290440763847114321212536067418322983439160609583436016154595162039972480980008332228395199864804623366206046287202278433837789586772432779453559606141046902293501407679939567136846571571044081627160686123718818620365067743226481257586704522628234395828674169980644108757404872121179081250052105606280632371512636304875614875331673091940145417773319286941057345915626255651256729555241877906619662397348792553925012003504573694580532849897401247362118653720468736926707714573232436483875436639567948796062100481620396560271087641548481214783088169791478644511421343721492599932808338944442497931996750503707235112639922385857006307374476783681421229116265172974206771525132488764702906253909587073474212412935113386687248996231488463264927114176176606782589023428441986080284180720406177115214452516286888557188451460815210496326837237342356812415596479229526963796184718103077582460237516373032222533111717015708360009181166186690893761125871866251795808680194454675535629991894668957901068786133880222894562528879618149779133631559413294408508925660066552175982654999623437731390458892269796380923510697846674851511524236432846015453841617878844151495980039563576277468710559559504734256804555726188729215422981580796997679996581269745921191688088036166307731239199049156530789760311766256833468490055725653931258165633614413547709825554792482801243007903177214026017284086802906815362569255783313807919992331182775130760898847381443827489130336791007435996494988663449256356596407576032037042868049377909937976049387851484409322778626321293144713204042513873194660105633232156901765941969751014202828772356314444902651251269300918644946117200428049344749431282107095654700352461861678601623592735881068759036403473880535373166022301274570514276804616802944429547142667545675143272142233592045135545713589472102792508441269682856084437121442734453596431049608610221712876070764938673298309988081317006986451486585275957574350389443844496652865513850933422222636435646808265687072317060243536366215919702941680133258636467236343604460913909796315104891664793520407151458107200330377393189336723045525364105197618678446866094876776848855145935421068170006587555400643512387023828224954504917720764100636200870509420992454158888516314733399981887759362941973842609558522566136501600005644156223359471562815428537113376652186934562870261429731322862610015089495425001449434545412102225919924752872028502296356828005239492882941451727218054065987947481435028418402731328638226359122882508844898430328384505492681038657793082287020532873923483089778902549365648252634899913502774099888711917849515178703156937257827721341028407183500575227930534413117949974122387752675340845477960971741691484023286722182936686890443041556517488002348174742780584563327505255949041342212396547936708911843336538611672001659958722287011009586434792648803519492611640809174833433699160739691715399816525889574764376903304639463002159954653568953732482568617001962812913542623874561154246160760917505884553729053860769351026228431265217434495664888734090602779849054111646975721102984229708675731050327792231950360663655358601924534192157063431462199691679554980955937647441387119458510455722292254930602000085017298529943018391539707128115102269103636130391850166105780428390896371390288202528948283189290089607075758795759210654736664310179145536021185898118071999824826475858149963386764096920104575668186308592692256147392895871823073456433440211252581338448477237978225232410058902652561385066844893333838747728803852386387116824664646824817016036916255256755661471496476513928593768702338738478831308164254414245655118209131884370225087353169977898716573363356970996025441219355836090236496022132391110897791070642850110249138078715353935306599126752466095648124899980927786228296878603245860532827519988760643395988696926590071732290612978947566092627148724282313454981871542909915965930571941721513364476016868409145994772071192490287994289503839837245950902627121243405749749445336817
"Intelligence is measured by the efficiency of skill-acquisition on unknown puzzles. Simply, how quickly can you learn new skills?" - ARC-AGI creators
n x m matrix (list of lists) of integers between Gemini 3 Deep Think (Preview) has the highest score of GPT-5 Pro is much more efficient, costing "If there were genuine 100% data leakage - then model should have very close to 100% performance (perfect memorization)." - Guan WangThat line stuck with me. If partial leakage gets you
"Chaos is what killed the dinosaurs, darling." - J.D. in Heathers
Note: Steven Piantadosi pioneered this technique in One parameter is always enough, though I first learned about it through Laurent Boué's Real numbers, data science and chaos: How to fit any dataset with a single parameter. Both papers are true gems due to their sheer creativity.In chaos theory, the dyadic map
| Initial Value ( | Dyadic Orbit |
|---|---|
| Iterations | Decimal | Binary | Observation |
|---|---|---|---|
| 0 | Original number | ||
| 1 | First bit of | ||
| 2 | First two bits of | ||
| 3 | First three bits of | ||
| 4 | First four bits of | ||
| 5 | First four bits of |
"When I grow up, I'm going to be a realboyML Model" - the Dyadic Map if it were staring in Pinacoi
model.fit) and then use the dyadic map as the core of a predictive model, extracting out the answer bit by bit (model.predict)? In other words, can we turn the dyadic map into an ML model?| Iteration | |||||
|---|---|---|---|---|---|
Encoding Algorithm
Decoding Algorithm
model.fit() and the decoder model.predict()."You don’t want to overdo it with too much makeup" - Heidi Klum
| Initial Values | Logistic Orbit | Dyadic Orbit |
|---|---|---|
Encoding Algorithm
Decoding Algorithm
bin function because it only converts integers to binary and we have floats in def dyadic_map(X:np.ndarray): return (2 * X) % 1
def decimal_to_binary(x_decimal:np.ndarray|float|int|list|tuple, precision:int):
# converts a 1D sequence from decimal to binary, assume all values in [0, 1]
if isinstance(x_decimal, (float, int)): x_decimal = np.array([x_decimal], dtype=float)
elif isinstance(x_decimal, (list, tuple)): x_decimal = np.array(x_decimal, dtype=float)
assert 0 <= x_decimal.min() <= x_decimal.max() <= 1, f"expected x_decimal to be in [0, 1] but got [{x_decimal.min()}, {x_decimal.max()}]"
bits = []
for _ in range(precision):
bits.append(np.round(x_decimal))
x_decimal = dyadic_map(x_decimal)
return ''.join(map(str, np.array(bits).astype(int).T.ravel()))
def binary_to_decimal(x_binary:np.ndarray):
# converts an arbitrary-precision scalar from binary to decimal
return mp.fsum(int(b) * mp.mpf(0.5) ** (i+1) for i, b in tqdm(enumerate(x_binary), desc="Encoding", total=len(x_binary)))
def phi(x): return Sin(2 * Pi * x) ** 2
def phi_inverse(x): return np.arcsin(np.sqrt(x)) / (2.0 * np.pi)
def logistic_encoder(X, precision, full_precision):
# set the arbitrary precision before computing anything
mp.prec = full_precision
# 1. apply φ^(-1)
phi_inv_decimal_list = phi_inverse(X)
# 2. convert to binary
phi_inv_binary_list = decimal_to_binary(phi_inv_decimal_list, precision)
# 3. concatenate all binary strings together into a scalar
phi_inv_binary_scalar = ''.join(phi_inv_binary_list)
if len(phi_inv_binary_scalar) != full_precision:
raise ValueError(f"Expected {full_precision} bits but got {len(phi_inv_binary_scalar)} bits.")
# 4. convert to decimal
phi_inv_decimal_scalar = binary_to_decimal(phi_inv_binary_scalar)
# 5. apply φ
alpha = phi(phi_inv_decimal_scalar)
return alpha
def logistic_decoder(alpha, full_precision, p, i):
mp.prec = full_precision
return float(Sin(2 ** (i * p) * Arcsin(Sqrt(alpha))) ** 2)
Sin, Arcsin, and Sqrt. That's it. Our entire encoder and decoder, the heart of our one-parameter model, is just a handful of lines and a bit of beautiful mathematics.logistic_encoder and logistic_decoder on ARC-AGI-2, we need three adjustments:
m x n puzzle, we decode mn individual elements, running the decoder mn times per puzzle, not once.logistic_encoder to encode p=7
len(alpha)=1895 digits
alpha=0.74285114332024342325549937083636474565519009327862941959665140406783483205479218836647152731554946432856788703992188906990891731482182847524308776802281798217124682447263086292706558015080117587125137946881353134901846130213659216073847350085266801546500388056303279812229387014566738064635728388315625125612460908053813612115944371403488022330138204005465833529402443403780893627567256369296303433860649253101774272722381473011643003744092414141792080856154336852232751681761870825262961239388416686534036505209391584808776416887122876960233618275222404879749262022119613913874625326198219211198620416420976413170105387014954985331241357748594103136211408700904101070819345678337562478638731082420742643951934007189701107794645826238176372535654425768205812193697418665115645591019081599730450414681394654648740614534913490603387271476765995708667386637327422984549190564023567503974083813261600742256850890763198442464530739947767438158346711984686537123296971853036329532017930470957886617222952038244846792482431147430762987112113198332310791887702977246168036347134814764098024874588331258467793920192910184049083305781018189848769815863752005856715581710276074190641816852407672817742796240720806033022892180099812775701709359799032789650317971424349107886413845671496713331998226307819777294734024746164655829893066785266198516930143907068214149756610237486409825479704403950049986719886018007204851422317073595042856901520808205036921515904367496432996379033889021520978522808476522459195470488476590221986500425992848671776649140155585867456664879520985321530329590064710028585228533299150027623406426839690690773509222974472641729905841013913165150369477959654018728154622535075452933489985516349842376600009501513262596103419929725321662046257221998489659517783086965851309721070204164329693715232879338957676296906129816570061872627789636932222196808375062090735051961248623508890396
logistic_decoder to recover def decode(alpha, full_precision, p, y_scaled):
y_idxs = list(range(len(y_scaled)))
return np.array([logistic_decoder(alpha, full_precision, p, i) for i in tqdm(y_idxs, total=len(y_idxs), desc="Decoding")], dtype=np.float32)
p=5
len(alpha)=1353 digits
alpha=0.720513558308703618640328591393307557764330936574382792747147164158013805385225876792947742458370890841526727106017186982377802193282496663616112790111484227447638627001821928407067681543901460763496878967882008659769520635557977409943763637913971887447476420204995149681787013296318236694714270696155942477229356166929431428352529386546481515263645920468442049504058850087791435826086914647316280441439117796649455284319996590409037447182365445065972145661011009793928601405408365681514990921247729794068024484607726728378600345294712802918428569030077847933266582638722578592842387536646679714745500714386972544553931816971567786704088816631709221332680402958680110996596288110423292135736715444260228217343348588516391228311471857564527271164799523998255231188909196037997115928054558604569471290293679833763591599293700326525220498537454890648353154414628856236436303301648361981146822987637373601745700037228621386998704811125980029123867544833360797156613190419157292916232960671344633088092512052341683987077366760610376657799304640784082313824799756122347713090108773378904502785140727021123474069209221831258884998951565308624996991324982743983920069760799063858081445584446341782537653193219895071820715112235749200595195165798891056048900786591514714860489953926474850128625079100741462465709180011767126386764464954165896796337707910680211314
p=14
len(alpha)=3792 digits
alpha=0.777520986140695809877290611432054488497150630574765379930570415022568399703706683369316902945787001753863091938022769193671379970566844118427937990377064850291631901787584836841419971587497742018741421325594475338293987019129504815695639443472923563020259432448337861279819030482271675012303835858403657617363473612585745448730299890486669654463395533302203107939368687832538283199675875802680074815851984712397399468994292001429594640840485398843989050432493151821835771152091661093408634637217610246816850058051614811727699434149834333393916627330113336357280669853941378295056506328309017855439112797273689272014683786254487940941897529065806842381981026718600951370605303143519597392897061739839122296974894178881292550523751395518887880139949347652493731720587928974366940163226687791110382040729476761995611819772641793712028605646356034292705965924322556494148610409062312182915933436134884317276374303246351587159690173053886753029158101431298183405638648538352284304106836323900459269613944409467469226483965780671792367996413902602712684325045919358068037853273481106629129281287175779995730470595982381533798132789263595588403090395233688739833729707158361614843480499237033955225185239056465334517063842902787949489364016218555574674033570130036454936689560307150933561392102226160375719251021623478829747976074537973892641397910534370386575297529008844382245765423340932083547272711954707182734116459892341464380806164263136340986707806468044377814873965250024835175331312715129689126672760183299314894066607686026131222005344963338192699403605759492653612749591932164262045916064301577638940271324050851664666268087246118010688210991603557518806277268005292776112321801074592963355964253782258926704889303816612767982830810741234715149022808145470847526320743130725592966011622921539171871321929627512496594094226496957060465342515811299576619008674261742833189477956173993224808357132795467562666108141626850213813567052603611102890991290574451373940181586520478907462233796778054303055499734990414917485286631469905577511848430756161771547651022365987900626217827714793631956168541679555034368480629201604543082506129540762963079285937860747270386560163783792136622216576871267119258299305009599290216283740980912224923995601881534922492370845999976588931881760377264716060676351588113910746517647134896641535121289771076049041725691208307998190163776252424371444688932482880398912038383050905916249583123481478314916098176383173207283303889432497154571071000819080421564438390957881910255161947447842865732995438336091691031361435281364594415983359128154001456096489767948129586453105894331404044960906021895111351284009436527038209954522722391514558661498875080275021474257628319192534947144804243410284694196254029793654102682054071895833929214329216393882311618899523920247200563548976420139668963872657666183887092604156598689098855552091322791520494475004132629084793125442408007444066564848600849605668520278776224497414993050697741653706245136897863040863934727251408382256917640865011101819560179977904288048479898530966995558763683522664204778030765232903642722215122057373426970678115485647933051397710840893982342576119798049200920332303835744155907173772837505929983430099040398078508731730967823721141416269540477400720674716560315284430783209146528211785320740934852391116882199253932243053338236787475388242154245254654335948661942082379384902733959018992726634279243916094810421382221873921696729225436191784763060182975587683023886279125973413878417222255062254342611938738373774010402075214209128153493208236202948104765530872460630802090561108299874661073903572250554930585948909415257399347317444860171320505378013859434564881580432780055473598464340955156498696258388476931097883758278663450942610716540004469186278588909632845437161493476119994478934753
y2_pred[0, 0, 0]=np.float64(6.997689127922058)
y[0, 0, 0]=np.float64(7.0)
np.ndarray's use 32-bit precision.)
Recall the error bound for the one-parameter model is
def logistic_decoder(alpha, full_precision, p, i):
mp.prec = full_precision
return float(Sin(2 ** (i * p) * Arcsin(Sqrt(alpha))) ** 2)
def decode(alpha, full_precision, p, y_scaled):
return np.array([logistic_decoder(alpha, full_precision, p, i) for i in tqdm(range(len(y_scaled)), total=len(y_scaled), desc="Decoding")])
y_pred_raw = decode(alpha, full_precision, p, y_scaled)
multiprocessing.Pool. This speeds up the for loop over the indices range(len(y_scaled)).arcsin(sqrt(alpha)) once before decoding instead of recomputing it every time we call logistic_decoder. This eliminates repeated expensive trigonmetric and square root operations on huge mp.prec = full_precision. However, in the def logistic_decoder_fast(arcsin_sqrt_alpha, p, i):
mp.prec = p * (i + 1) + 2 # extra bits to reduce numerical errors ??
return float(Sin(2 ** (i * p) * arcsin_sqrt_alpha) ** 2)
def fast_decode(alpha, p, y_scaled, n_workers=8):
y_idxs = list(range(len(y_scaled)))
mp.prec = p * len(y_scaled) # compute arcsin(sqrt(alpha)) with full precision
decoder = functools.partial(logistic_decoder_fast, Arcsin(Sqrt(alpha)), p)
with multiprocessing.Pool(n_workers) as p:
y_pred = np.array(list(tqdm(p.imap(decoder, y_idxs), total=len(y_idxs), desc="Decoding")), dtype=np.float32)
return y_pred
model.fit runs the encoder. It also scales and reshapes the data.model.predict runs the (fast) decoder. It runs the decoder in parallel and reverses the data scaling and reshaping.model.verfiy checks that the outputted predictions are within the theoretical error bounds we derived.class OneParameterModel:
def __init__(self, precision:int=8, n_workers:int=8):
self.precision = precision # number of bits per sample
self.n_workers = n_workers
self.scaler = MinMaxScaler()
def fit(self, X:np.ndarray, y:np.ndarray|None=None):
# if the dataset is unsupervised, treat X like the y
if y is None: y = X
# store shape/size of a single label y
self.y_shape = y.shape[1:] # pylint: disable=attribute-defined-outside-init
self.y_size = np.array(self.y_shape, dtype=int).prod().item() # pylint: disable=attribute-defined-outside-init
# scale labels to be in [0, 1]
y_scaled = self.scaler.fit_transform(y.flatten())
assert 0 <= y_scaled.min() <= y_scaled.max() <= 1, f"y_scaled must be in [0, 1] but got [{y_scaled.min()}, {y_scaled.max()}]"
# compute alpha with arbitrary floating-point precision
self.full_precision = y.size * self.precision # pylint: disable=attribute-defined-outside-init
self.alpha = logistic_encoder(y_scaled, self.precision, self.full_precision) # pylint: disable=attribute-defined-outside-init
return self
def predict(self, idxs:np.ndarray, fast:bool=True):
full_idxs = (np.tile(np.arange(self.y_size), (len(idxs), 1)) + idxs[:, None] * self.y_size).flatten().tolist()
# choose the fast or slow logistic decoder
mp.prec = self.full_precision # compute arcsin(sqrt(alpha)) with full precision
if fast: decoder = functools.partial(logistic_decoder_fast, Arcsin(Sqrt(self.alpha)), self.precision)
else: decoder = functools.partial(logistic_decoder, self.alpha, self.full_precision, self.precision)
# run the decoder sequentially/in parallel and then unscale+reshape y_pred
if self.n_workers == 0:
y_pred = np.array([decoder(idx) for idx in tqdm(full_idxs)])
else:
with multiprocessing.Pool(self.n_workers) as p:
y_pred = np.array(list(tqdm(p.imap(decoder, full_idxs), total=len(full_idxs), desc="Decoding"))) # dtype=np.float32?
return self.scaler.inverse_transform(y_pred).reshape((-1, *self.y_shape))
def verify(self, y_pred:np.ndarray, y:np.ndarray):
# check logistic decoder error is within the theoretical bounds (section 2.5 https://arxiv.org/pdf/1904.12320)
# compare in scaled space because error bounds are only defined in [0, 1]
tolerance = np.pi / 2 ** (self.precision - 1)
np.testing.assert_allclose(self.scaler.transform(y_pred), self.scaler.transform(y), atol=tolerance, rtol=0)
OneParameterModel itself is ~50 lines of code and the math functions it uses are probably another ~50 lines of code. Only around 100 lines to get a perfect score on ARC-AGI-2!
Let's train the one-parameter model on all 400 puzzles of ARC-AGI-2.p=38
len(alpha)=1235425 digits
alpha=0.7777777777748468497908528754329055819520775977755509935723954616454508543668168421727685924246808824502815516686099904856145481355766858849354209667656379681894823059809185997408171797119678945410768186475888027694290595781660650279704780724394584226353187950204736086532899335046036830304955429764180843723841263919805859947202346281845125513953085541347602833274654383138855499081960429069824893864502183980053987926242297046174981885628869957364837526901440290005009703677357755871510048364567870788488841725024112042674694829199715631148758038511126056400496473488115037850895959176722958854313073756654325564262250063584593188889520975812028818058864559296211975860501482811733998134777929061121640096760222798057651520619545358681777944421348713195485084666123527263006030241516629690437636614784913152312178578476914983190849146638806339422822263819800844255074344862942477233495184340594096141523952832658795892506484074817042368301132092132953552752060119110946783399814004997695060673517941075854526341546807627762920948719880102038205014334964457732752719051899889510745109562935272605064055483742565478164818347946236743105685962644481127690950791285442122698281645539642120826448209759124984555307049366250270662704699832764740035218563919923893515647551969075683084980177496482288857255138471244741572676306911907816531427493673729520720446760695272911921185386782509732866359363895126777695415239119023647450270437500383908611006916501268850736487052565390046953400064387760465770660995947345257734830090072208939594209331782644656305409329719473940727253155728097021375259131373098626843624763734201052865656243120224349058475233765628737218481257175391746916301256802525343488082034102974968882384110566545726726292973407860757224827115262821838613809092250433934728881492000380784427986699327835900479490485004950291831240800182954552889420410233239665083650444104494814210051567408360280494093106240514089468905989968970861851278269794687246744215576064308997807494676422404430120734308309202361605180679732512808376457043707454898392710260888992882786829820401437222514078143153074521737934962343328831875954383667152785540316779225858999790027521681470413563190809617918505486707102628652145049585809961706430353816335217484934418245929016664860091008681326257645135442179110901582432925344573639422992795729597735620226068778822050710736045981914269997932963206367659115873531071623317874588765402435834892798118269577899543529920369019457498196465289698834394267084282880226292315448042670196256075564610446520853928280653109165257948612287959843462916303704836858130555762293905029452501819109596043028658375781595046434189608673000488220875153070253716580118158600939333691149265122098216822115907678880004452289995300300978792358436939051824864514071370459178853740203202953813272136755970550957905158073338309270346654564498220626623532109734521379300092122530944017212670920910562758315799015856617845970088496054899021417502109784085946656834540610959145865134164416116973722218164917196616011464998689216227997844525904093282634075144160253689457331935249343042862194796910664920782685989892266388851775655285767506517938766308325223605180064579307863647598948016241139124136950010156322605738978990730155218933177818773560556506140483440450125963075200796939358860654976172180789840090867625975651326738090171803586065153225043442050368943362547646889278997454388105207871730330567059532925771414497092617810354048123043864108524307400816184675134381506067159550162879030355625739758488827257265179080214672469930489512399605193575325431153020183103567872670696432150029917715503965750945484872856388755318548909790592643712440239881053417807072173162739146239206037615538661338472963656532234364136060519368309287282371397038615696202405279216236362137213910928330884111154707626675563391783458549296130270863253312829631647879451286667198798130565077977623397671463194151063346040321018924047022122054628514374891982831951763977781136659827122892297788582541212312299890786412726897659719295490590575618972670151503749334198118917035796564082227725042511650624573706675099537285962105557131194577193375942155696387833528870079084924123118285717203908842176149275861666313362298781471327757069290394008428373317534937311379556023895889348066468790981813570522386086280332836128666147733219676914051804098836202812763931467245645402162384908136563615338214142415773866647416372886525599254148054272655374245873916002885978335836920385983151431064697751020854426921626497163258801453186309877639390840050935506329849504278687203349777896972170011730960130961882868192443059978678882339389518988654519191857038227487648144608950675167201598329725201595725890179426920997675340956312878230645871945023377538826786644321804805736662794082797965113013370539522081500976581143048379617537715252490690625840574737372661004340205271159909073125123298461814472745751634488832812859028018485269579938728010702888746977823341443043747107953729823363636343798478546020846187487939715435772486627755120185898867149502803747650097534249489773737337676617294780692322613250618712205628529535166385673416168416500319653289491334521994928130125077706410533319030053451849883506418527941494624736737665212050168234208214893082775959782888018443389800695425651359254534547397736885233436938171321444392405861366494524485117386861352425960733245966088139431926630269379120601473208563930453083783312463005683655450250008837800751824035795678165143917461984020125325884522050917064569599280322507866542166937789757276306570584483383360301712085434392103375619214064148191667165202820723585303739187110456616776403119150406965435207971062801814574457241812743524241069358686234690398716363354164990468917732333883461875489817423711858104408328884640521336608113222818779313180387691781871612375218815755212394881051402048859482823127356324672253526682309045109505208537500794800992989574889401351097876687288426383109841047818456465870373613558189614697025260651021306670154134578565920621265462754763292652915474062896640919241014132649402589506990334926494052108867774167203162733225696923490346169149619526175706074963650529602373290419062625393539726467989949445875970353500732558260672480381107809206072436945808343600636031206249369769371329257712230656224373207641999189547299828758674333366390226572905944972509883570328377669195234795296829648969427074403866735642300134431618921959654469802133595646117688887089832158030371401905584396186851940804755977856560737958180697373161856868006759422333837837455796373484196159160257182600352728421809286604224970261935193539558290605681885163140496510684893794927175361191795065007296190257061352125365288140158434560177543165264179198073012385809813121912677336732373246493338487786931360836247693573401211408500182970940032653564997495971782129682168009730767201926104103487483272812136859935639401182872232368146326254832556136992130938699246048744915318103183250024529120386997302649765488592017050626406134210883654902665596194536404043983437904190742261812639990397297983969970635302623113483451545487710841956276801674967785013182056067964188495901258013744597671587570139852435348224444297858182515568169807295515685214498644987706171480838476855708756664318996777963357538911386903177277113072972168599729729869914092708626543526254192634561942132431025575821211448703824293161907516112272225044844022388503299111241141039840649370608269981342690137608645098947732591010542835187576608169644541783679616846435447819990279642693325795253104108041946344815265738541653532922288106916245591658306972273900324472796192976666280756033452875632444298684351174377823242812761095636564894229439565330542049931987219610764327650324688417498307592527930723788076740422271127245270922044668942649553531652989894101493023697918620263740555517294816977513331698141101675921458530124176262433513769606062217125930202550894618337604436415209804060487419876990916984366823108681190035471211553129633264114788791637298345659837377626172544820545465715150917155239726513245057099143009857934676559410972959606455885476062522458430440055854473559090380615940556145953327783061426155493180420621554151227178358969219376730397654907294149018316390195831777984679515871636830742344309789182796260674570817239922990249768923377548657126250742627168008151903232073388077871383420101986504020866124274021331860142812905100698515222855147773272398474474924763308648026958245359940594816637355959827078441492933836398697939475873950973350132584778793326175544016019008250333195632298526253924379187747907501457027755459994647639593474898210877532844003886654262293955190550127921122287591682200823268025194513871886912854092623785475410776430228146911415959991923773589945722967506751548700992017906312130869117570369545565419992134448462231411040084467189399298903405755465172395998772760746153392379210544333707590443143505303538573386516991053539182284588844062983538188175240173156278809582018052921782550428688819263947358332704083946613350796595339036782094218724533596179157527597251108045100415625860008512934568880801314174446348143474232310168632035793054895677189018966020101496556273646750685013195035234935716358076394078702692237754729239598894158142545532582368579153843046419854257510239016353428768194328385181410517105460773776161415745811845838994886045744190597862504484616934047366919568930153769820041684465337368938109279496246732899484259924705975383208949084528783821220710549974034447006164077066568828862978580577169319694031173332832336343525279176222345791005901665174204919729616655911274580440437700909373953060016499625139031854394768418419910974092009966744412449066080315025667524795561867087410510014063036269878601545151513430515029914809570106749755055596879388089593447468234295957315662937992131118235497041759956649029756564215798421868825656036630594217478493034107134045426306733280704911885110685636158066303701602430340228782456625635996692060506763691942527392058159253306133930655137791313182570497351080557178039313257048533663110988465232137644311512635172588345664743358077626340408734834827936377375852451675245230521429307177914888496869670887390970840854819991747898246551123146612313951871771113661343456710481445440460554500541268263578686744658524689271856260717781040637525125414642175107268130749931999628635885690616721450897577475946513192508574231944410248818077124416945157088082423027010377067751305763226798219907492389417943473939090442700083759712840800986185605025389332686000980893397084102114174937023510649542275304001022975999595798592860596357655410148012748497219292124389565562518864518664344314929972156629608313631300946020970008752831529897504662494055021787087578421019405291058930711088721591261801998339367253615382120631150197075837891239645137458404841783591169381615744132520992452959945419422566831463882820221819408245411101306127175483628809790463688197857702826824744421284660158329009046488950985367572838377151207972076479312988673252804182892206864940700300374552877491110520034903418355977674025682628560713585548108739713310033918550583432570890925747087837699528398320157945613025688551492519109624159174249466777037451067553663310663314718762408023931418941105265927677700762234727494177017231055746747532111101466543005545762000628205063636894175467577824852613991574207146838305223959680307553166847970555728958630453100111457217918505869709913661675331249116187746078307004067793181707038508689425196086162602292327658942244207269671369360038374827909631666243906890798296306096676641862727447388046096235877334342716123426547890599301722219031328987970880797310510033881498922579570554705071132769292275121139114623774384713807931233987822945888643194478218456458970559076235455249737703947188354397886477320673247248389820445976463182015198704320165451898380775980542043331353220005380915869840628702480799123814814787366579771893086381850843758507924377263032482513520149640304885676075273662213667885235132325600266148999184472270097958678141857302766645257088831706005107010875249749988305850506291771161812959801966350254679007476374906093035564066292135839768354910223910722828575218343564074974616513575568638627580488073609637694643834273762972401900681606439304338620978123574582168399921913199000001656526225731400970653827039548928016923171690581644898104059143986713878861467303276660168562148518624072982367441350793106868639931005089445942086833450354657008230097499442283977693179304422335776697219757646334070635999541015045337778843525503013760569369758034666639727602232215242145343257408368952103630047090420114999913223098084755970861475348754147752928876612587039225684633752535614447399478461887591094490083136754988995077485543048063777909945639028289189102949954175253937692916118812203407485284985435109076409441549857808868140644422108674229031853730445863917751297191185356734011368428735225364208356871280787628846907643093036185791256262695654255326078119549681636609630393612340210318439033130150985959972443756810449232310961628265308158603894523724211064537094862090905210878145772387570956899251889020920830054173118198609872414830959589716764530013829813418898867734023748645686012831378744518010069667800783775589618434792537826402531349309187164940160705711986670590948856583570006910148378607985832217785936184162478404388570095389665324493945630580634413385724878966915377206876320087053998895433850390184609458689742959066950903699268010184479096532455584931488698306750087887510780334560390021204493783653726903415377614257722875376330046366952193327616371342547553298986895524244027306274367207230647491652144807666538812872331737504612518302573681035550388322443647171463424769740278236925408210188468770391504370369557371513338960093968949386231837092904565532138640727148774650013454643060156304531796255972664579665674722980540673523426458677761644662385892876576033012410452281783369731271570519357678386833329736130991758404024304554018204999593288281419166404289760260368850913713445846259282926329897111008531189557711634878331619638244767559278806735675892472145938697334191616514973298654021777312025796214897814739506321688205971179050595840051908338632908986688215338835802953804021943130828262517858483315766525481124902301468878762430086762073634766220869597297591063461308125353694233641174829897362770951261695287549087748579113456562484811176912452806187899661288867866997853060692982639543656702415151906800388185879137786542268417431177172173250216716777464520976166036680816394951764592908919212869224682758338509223115239027589479582639542821834624149568131589958421577998773774164455968217758387985515173528866410657458471294330257244256158598122364962973659661329585466333679477967695121429027223591994278874135442822640992385295957532652035756335800082200867062367185656905160141732634262973831060681907096162474121593509456392717152225514758100928721313159418466793032387487738970638959835858364168708054143692456333701626555585605396790299173278631706532161158050258347130886965766836120382084790589130987135656563807468895049867833037184392663488602454217424605303996451869643824215911954821304809846985212898791433666570671233986319193190215835203181448650745865573593773543306710167723363525780970694649242102693773281055186860878309743831110200934295920705801588031671743440557577462100272629644065476403589544385742891528764524344631887809195515004537517579502008001700462238819085432964469136053869625067970330234695541829848188664491873124394375811347434782821189696793131731723814014590618520143384087609053481050550358736779449511966714927876504352195372210945860738992188250648816235825735397943309986972519718203372932306553957314596745851438699217305162780612861987683641272296138340835974991874155488253589821333251425916517781650586072001789660349214200714498100370068114298473694006384114049895765859707773490533962114452176493824442061788713763340380100179084013412726203136066063561291231598969021143437855936588260151467012941734289912235929072184841171800407533186539360271173763598980703714371432447433331557434100753547803647130133894422751747643145366248263322326790287188820839798552867907936645798474846282088399584612046939551188573541598392255253915056547382925384159716748471828317204546489235292361613776009425177514805003858323736312068791952605214661462585494571741528446323759730997616511231256441406555359920945075525208052246221226573829675601922776373487666775611843422360454793512999177956722954014230116076455853481763263900807667886936339378113367276296370271717115019994201270525353614104477890426419502263834616756238399264489920765508384997952857688857533349000954493441554914857316122808393145645628145487101956085830585675742602960939050462201074739878261922771270086511337554630485278478461938835434708836421759716175135540599426441643203260933174642215312045646486227831981831791086654298055418375459710277867861398184327607166012257847336536569555100880280318209914164484651062567289590505553893947149512262767224306293443846978219556673846902883716642676828977891466108106277148142104577611484489117886687519486721525681147689455607453716649344494565032002935335405483269837302290325552298077730958439858670667675746785975972543436503479837299138246689867755164435536982907759421344230395714716774944041368717957839998390570518170725006489005800066151798471477032914993911096162219712763343258156536952010726329155659691994301241314665483669741470986571927389115164790412790498766220421143607513396079325197308729353795791377548921424650106551928628469437509032066223814240488678023113077718283534276427170061452577564473726538156882057039031501387725247299039949687982131575605530301280220218858886284943699250216261227273279087232822677154617628271291035303063637907953947363986481187728397321722529258820560520952083810914010226354535795973629363301441414460415249210934372185965367873877064861905442671688292139628928575155281063540480954558975174415980641650583509708311321771280888351146756388131928710639649941543688431186192720489511041034586605663643276228218700175915159983528521277954219002392934879554980147018701951427974324986167762254228587274245504928873270222161371319984459122301894176046446837732492671625305820379775750167358390572154840077388555289840409268552850199387167887696496113326939232658393364934269205650233585317968317565133169624312412788931046471779441353676055566137160039671343087069970998103022781004570347242724568792340803664215307336314331280906004702242797689913024392757551423513595907809522984911732517785664644726225245886985758054688567822062432559696842088581695052296513203295253317687315726647747141335335160938836265775563300725578635488600939694387303440880043688163639555547381500488517303355741205261339023479288772015080152225605868436445568203387434846563226091269096733776875737488165302881036042168292725645711609340813021305118552784034272659919154002738281053724346756233404643494474372245491689705583663578812940232602119728645704622828744844060929565711721220897531360193700484332581683926119227434944773265762788289249745611417831188783829491979997291428599934753737392434484134895210254029658352981253316003689406056996826548640046001303023679227685117707038972944127427838523672946534891692094726259329058594081034027279825155212553160127015756614282708736071481337085968536542964769368367880080490117400875420173771590088553210470111524332377560653872277155655638827299746058197684335580900399784185650089960361710418593672947710119138337881236942634930268665868122589051614020077834411517796648925343406697644486497654780959538636644501660114799944590223993683320210015563954549173521951567991110790353533862385216652460092559878527522711411490154976317065168034938786210346952875486207215128665637672234806388405371598922057336440086420548810840946236052290204815397296425892884806045923316606912605545991281037215012182507386421469924553756883753149479256640502563803241464529185894975265224331074619532924490375752619035727684629139493920360542837937135329815595385377581033073315402383510965168673483446523702517624368791195350317240361465042732757339230609900467661458342908047705919209019936298359916916105956606481543589801285373936692384806019211296028619101369606565717194161445808395169878680850222880791803231603825629349007163641727480706935701500375034447475067581439192622019320791612422104894832713683596356228846268356093141898746650866556063535517896890135359066232404150193340639042118490003873861534647141159277214467083565330519121294743884034699959266715163932230086535182573681861997220156024104027063174423642072585652441847671886370354861140808555437190654486594724420177756510338839046015156268975342142579082151326073336654043095549451857405146537741228417639447733269866337984005241945746003076671313310289578941394839898214619388062963314685744143397881702360775654830604846524338323135987418939936459673169069624797582335632444665756630174783664957232306642062041592926491361228890342333047939134004732534495463190094386023762718824782337692975449536593951707206843430286613672213513100386247287771146219081768967234342706743458079205304661088831414847209905348515790697829796157016649407671829055011013503194017562934304756387047860536065814769201479335098751973036543505328389682954106653704734130527824296071732547712495548972943557962515576858046469642215640811230090553388166950899299411689707411094588918756570048470778665556813387534317262882934117431206108820977191580457311767066056844840839746839822220376573797543735809523423271148233845584288549020053336229244811217482022406849333261104964297448592123474238941671541148703644423061114788918224204768848337366701200950088405560393505751967123401618603539960250017042975968010501769707425943468304830781158313449598393886759642702513522284428567958876449074982503645861072991151871885490262346139488969940826863743064322827623502380077782311570703314321483058450625685026295704433687802204191912816162533626099686962711920290333406211983793533106165073169201338495145852246426922855723820106477631225064947318947942397658330454363071671258711455597119954465096146065945753624259803400095257422858510147013477263642833719692771834325929099200467467820360751237736819259004417582986894517181854983802192311611149352629018446001966434751244950118687051027269291613532498737726334013562617424524946669224372689327219404647652763647798315141261417380654594674067975792382737337570502266706249854349854599060700333472807535032604480529443209439225447659956699854317845519253648721395107059805970542248282953439588144388067547738215489225500924395748427830125533515792221492613682902122927529366727024405266258444098156788985714821182291608975192339153060633085088665888946255553818970256576915386945505833666379374722477316270841797705549893848703549066024571250960836451577975457200826914581173373222312809050339208571034159589212755732720103573019543126871126299461813239552304472988526890926310187471308593718969847404242852376267091810533883416536080708960985049160180300081331222577887259262958696352405938770847393004348842441530769739723668168843368424607682261232864639697482515880433495076932337597952576398758689628063143641368975227290531822630860792319402845248266286550611095559150165472047559713619640934601545945638412056444617308088367805372935941343201241300314703971343686368056680263974865835537716633992504179677230538987340710333087828768121616489744021692286024983723437764101537892108366095091039910414432686252068760763947325088188029435069167734210276772103674478913389457849060551274722020184935456832999767907330805077564437992285149422698075029445051216050481632406701680152734981521977766760296901760884794139889013189975932505729554678291223275607828908511839229248235945735456593225571422879510872533339114916471453416208329282156821612114538287858138124036927106338614201204054438523315196601206515800360664057095338639255017321796801153177629664077231792007124213447461100852182320797640715318558510306523311241127990118926948434266532307225792876448882600833466640080677171157044835817577452646876238163858208898849164720748768469876739591786042968300451427272813985990396466705655845272020467674880810458361533878279497875315328181527773375738600081470683780404813389948965240806676290505224006076210369368259694335789596558272304771268890483876623202449515099823400301288107237833933944224258622010567164945657129568053570645434176389986052902805261023914270013647976554332644251672172874093476627596360397403960093787683550502373236115386794643733545713099607190316899105185766865581623888253982358659563334655793279430606701117307167202550559075314551971469484787026905864176441264232903985052210920618211488291838487366130336094350629330780063542659897356702438126111127547711786715368062895105920382079326113751276678190688909675523821810345821215344837932854264900577220579490132948059953005198512133307400972457284754133711782136841977750904205496972249559585662856283342444407412747255282332344735619745136024180010666547171492013799697122362051836302430251035198044838891564287623823509333914183027478846514389654360081898542707079554079801884416367517262589456492516115379454995427837620085137334880730590211490377886220520080557459300945814317137601190490492407267743350047942205709197651787577492938552417821144306570438616989450425374721491132802193036436314414419119015048680008421108565309197722623087659926084216746150436708081214320043934098271545190410540560207671827881010086172683807459992132191164463092142818552350310724485492043373407401379653537578630468302584710443360215708401581821194898441452239332133468529990015904457763573911149686743636120500032406425655221373992002723845967134678350611180756003456607346289879133316585768599103786822713844674791127238342639256691592370125513212915087306840468249379430050224807830356808212481959301597107992341791842255318452793835408982163929091173763071706440418974292418101762899754060056045196238461632655863695267207457627937777095775181246968948324494500763880264549762775089190245285595171911020831932189564992275288415916405837906002247242054516435089740792436656025866977982600009929178795332907167704063905461622457249678477074175192504730745640960010055710909025052959949670520235304113192783376519619769257407859627628245614803275727588311376545393862846990656739842574549898414340734600654668448843440432771887513144659537985965231803350376473170899608648722245784520013793732848221145720145845949381411854758467703467929547470552912171415353002073336150860334083736352003366248673860361515816333414452977334114332071612664697488219972361886180198950576439542553392060185213891743367699650996791044665948914406973669142556381505223180868655344110330934933113902895133591975254616775564517711443795446720072483272764485480459422341071142150073383703671685057224758445038393323799898417194636532350258766086965241289320797210429435810783034697070762577988307862165281214356838466611813068790911739763006958726792770529229691994273483440025956839853086204861463130105703098947425118093925460920527164644647000894270573279903092103865732571598759845777699757223177744416154644460599768240863424344115961562417598306664071089849064245401387962138700058992512607049425328667145956049733691711664981295485368808310754520907505597743846130481277167412088871541239606460430892795611970756814591364349936782298836310507451395352929623929297863310622304626593181837560767385468478509493744317551245296997346534179981557154958105311101484746391496108912060696320792903109349932179145689137469991358675516538209983150112023897090885515204583584542481939625896671023609779174305639175282076463337154752713584111928213167311969911112224807551042597328048238826098024912683825263265595140450415800869864031180607710279986310082722853439120142619848701545614426934845601911386964719553392368245875766252829817742898656944263029812868549186313757172784064466784179365993264797249646135698075833609869984790898834012931003961515345283105392921851098773836543293382738208315242396841291147424176690535432051065611562510252728160483753140231342769553608505923757289987465957552082391421912888954894712320045280860017144770975348705409286166726603587344215301916267775303198925338972329467584389773841150043488123060326315701393039731232402133103644217521016693736183911489211748541161245786618643672278167924866239848839499496547008470425576271000498115806965225536448483639600106581928762591952905139683049442252955136487651469447112281802929721075175508314223994391251110899024099242638641404714245464674368677981548260829732744772318093379507486178160898493941210287827480018628189176519039609823286361227334320234686036107984735597803601482879955583461216157618618357255833251619864585518227420488387679404029625691596095170415074110781189648017148457997502735775138025618799368840016447062195020083829613899834847602322590875588072797398665493691691103278830427859764979727951567085309051546759581289959393285848986588532648653144924038372651426560466400951243453516146059735695055318024863939491025899422335839333838502779871248067814990931217245632860030142770422399976019199463388666301355347369281766933200423168167177585808290592701683648406678077343801758670189286084876923811853118336807740689714543574082402099085293964200424683919884096157983452902130765099575674045727398538482332429119364703513030314378466385679079107675705302122988204676849734587216459841374654298786184046225126941115147629256721129793557608470690030423592978662212034288914332928012258545353204228608817522702469690503742396518801428113324640547965748382214351831525081997278370208915690818435740794587296387378568220116163814630256688667849002667767737988326602644036717203592674893698724653692348213311409833306925571719657690093441281174520579191654417689889825760652602317978896049651905216930518884602478949046560321124560461971489817443898113399594149096977326040062040048405306413059216156541531301405428476432621979547561038585761720277656217212378895350072918179780048347915548105062627710496278941799726396378428778417117519204880980938978169482607909546967711662827604333881766095508467811890231249613054704615513949463379831101526640792191210197568438929281159056613537764565575445134012858909092137510821606349310766989368633424786014205791948387216691491484085325218062287612701488098640576885779867788281422733819591112548157058912044430117953796146779654672975880513674747745971288663963945977877122302517164704110477858569183789044691163523436736416697426234947251258212953489399432772189620400142757170322272437522731313565129761389253839990105585791397322308036036074467865714166700514179313624646720673477032182608939880656212473138750722983966185827078709276457738605376424361053951859958901522060533510960840831078057068055556756098772102597052704834249506804285231974775329147781046253632714853992081139268068979845421258309167446246470947253199780027955092959723394664118826199905371529405708268443648646877171256503703932981717846415620390496665517949347578504934887353573763745725940887392309224701358526229062353117481979016702628648489460316763591509665284894022128244159833194143510627706789467750035454433885104787260201497434653584441277356572527978619729908251567574375022346508000388173269685448822797910765977381320138040138845740150617627657772869672223951521133851882651895221367155359533957317072514462549425534295730085067341003186302267242595534533359803713705216618825746785029258844831356031166620419734610544899218481556081702039015287258233819228912554927218588350909887648819659722024061150985211594167016758007570119993750842135913367082504806604245419141028399944888970434005393044982790540332488620345478969603860181776882160364314199550213095923424039831657897697872303787523100575265295751720758598050080187903139923132115197221742500405520655216771796626408582320330264412920386056496805952248846129741875284602888031119509162297375784084346815842447624278638642686453464186940656807883403502480028731227905707898548007769420651050448536230139891785636483814720595265233330854177715810783029264892659947573546350431370339659787995436013438738018321992401772046100656570395054352529640977148966590435076300403908391264858403923113590723248461015612460319728931786617757378659251051846200490311624989752168249166197580298818508533362470326626556924349420579715910312213262916785013405841564083615344195234922123381506771596240367894949031645811719538175230439887046973726644858231804220850685296603544324109083156407329842936801071811808607282138119587549163825088028626491429793826220300500673200299062428889595668571155810395238811367359363019937690293762504447915971035182400308583021581962971254342624810124502851656130160387986325625519957437346734895684522059473834811568346296113970271340341333944843449104971084648882715962648278632656471942837920182760357197716761577081192499024754693729859712286201522102352748349899293475985617863257585386426524690556317289579780231401838446986437708747609436772335364714243505223555929004508438487436605620313625297231321600571031697905662195872395928659969687652756885456844340864350217108148289586141388918914840131289787086937966992846198793155986898228129821138711332575909785521524199698252457297910325845718919024036040291928939234644689392233524137331564013165809576328451702023475694460506691052206889868034429480031271583100884418385442819200693877192891092117731397742826738305710109175146683998099177709785072857099904984918343684936903251662381099319167260132127448098073333613252037787559668075148300476155064815794423320797500844038026633638944189219185612447631573243058411556504794213975332285990766238290307939860701878465329394193025269858006118430510237372146377277284997798416655377294895374489507821703158667814219539850085076637056258523543665282191204244818303351118867833101430656992460921447290799728815371249348626837007247288842441745726770234275242136112871894007800509566417369357058506399814740140391661498038884997958331757024129785017247016569537896592149571864832727664552185586117568288383157150481433913076877942460131158880896165885770526453055597495256946501386193968768896853291741254155833094526260211440774556972678810093422048447077903981601940060269120202943329883064513522952279132612818951283711687080114468595140764503576189125280870975977710554505583414649864171981226392414239636343081367054213664187195036878848364761831744923107464849144759492037997921574700291949217662534334598979681170911249178188457094999627428565120923011435959667412409377156202015648528946057568526830503217606846726685386578710770857509246566436749700573215252430177883630768669235268552147268142278489303531426860238359166218625429488016779018474632535193027602716556866347239500857698754636923726463856301987449771031292222212464147044768675928585970454050712736667271561446104606523111780425818768360242186142308563070147396518477212109544095458536077581704158028217748087528086081745998626598412664645014849952091500226583959631307378397056320549390397267646986557439144016991383973305581956233614763185838605257235064680192855407606097831480972597547996441664744110908523658437283208707576791586807882779327151879683764296211051224984820837478052379512384086882358836879117670799736263198854365839305299198217622293307911804850078441338591355300338470891040942149539901803967916358400628896904033388183850627305030905800489187086676376528064108128150373694267088086805259414754241898025026507549560420171628938268063450605813249149226318819009990232547144279689248217724508618833721801849865086247428128254247381102128912546049669609932277359495581224477268802736200918510718514401499672304982363569861596796547643706626290508329206855546330784752856120561261622197819825626348667779129940718114276912922200523628421764275579600793377657612299670452262600806627407111446216868167247131676328293807986240514457290824563318567723454148806694240368207996186707051779264414636740629262159325536723790875136519641044897035793192473700789745773352957026230180256527142685074532609401791953071502346263438433047831020949599585779398809583739442273809132950077385235709078733208683013524690409572621051803109908198242450803856074022360736859784588095457828150255426931672422700336559797336165313016845384758656789484232257670268403536551012464139640544360140514801594899206688200514333583828131027905293617428782053165402821503023186343897964055202354206232921705698525945415867676439064904891806395465097755366469233317335244809200121115014281240929178945430021188626909389360150612798951290242186827180568937754750002690216051672749215257636418170863687703784041725939193579690000933515527960288752780966020977583761828773059643051210620492214423786202038407353213597622901959813294282559215069448540816090266125493081861993907422825840259906830958280971352949458861549730338944526866843526946102447493059835709058547461121401517220653397165913999657511289916115537037346526803150292600437640458867592968033878400614711539809876966630187245571326932491321164386349297709179004835342480470115891432533495104671831169291780242154876506872717987948925712287739795358199355833882497108936129283416664139988469119885753864795486196075657341114738677080336575580541574873319893744448130076759972074781001189345753554228544946729493903876765770619107086175899642252677738150325522249662021518937634676462949899893464244585579015419395801838556252065336913804359316393964989957976594615098100170277956956391546482721091984969824974777527630901192598870357154819545896516096643022965866049668353963859779671279554861653748791674157439882302382447909543076130409062791351710636124519507827999637799294411915943264219269702805492945352750395633389090943937771896422940857586424809348470265604341885353835177666373859023218168488947229865494091266195134383164026326658512580841974180420045115689715394795966443778312443648496814195849058370585479161045821767663787103855537573626634159775418223972935003169221667314797113250295487223042989890326265273837232021473272397757920436578572283736953291068778826835960746461709205510220386120265739506260499140153624293460872891731141461620872134118017611070334841983861751099266867299796222622079559400588037604621328826322879926521128560050302348504541500682303023416050250874060532890333181498480599112468244977672667998358786634852580247626373801310149193177527710079325623716163979428327908808721049456302491601300761762746523534703236959475529263745380987888007729799019922652268525917324701365901786134679242551014573792165836320382729790364569183672163697932053053005471533102831934530986401878108323930439202962059514107544655013784256743583769036269936634177783521950805544722082485046991727187716394937174029098015053163594099795487158484075895196013766042003653420387433706305941118142359217966897400882096677279055221261983794509998750213603427658282384027095503385948202495155411245398200453260956196654751781094916405396172700821601491896946355222437952461759161326712525192731406907378808307923659899322012918054536122067808507026854359383887382989902277784802789199261600190772420371693574845875066494177323716479520768741569976362196240785547449740090498365515935354416601938732459672877799525016395202674282781273415445233290252336616192350890186401999888428586335587824169675547877171867006608090353842424215035185492296846571862256468269969318996237318783813398213885422391752713659593752691484871715751758258267725324589364652920859513118161039710444271854729284201564219923191126713202834049679203393202200656353886252645744114482780072902637406892694270436940581419047453594597311661991095947026198534120501570974197858104131714099433632142001309412205948811962675784361101100547616050824781380901135216843162781594324129928966193584376049691709573963465040702322693390077173965028691565523502255753519038429542070365187067771714684549744775923320649766739496614637707732740135637585059437892565848524242937804673079911520914716160712191281076577399468253096592616000202127756019058463516257444793596460530765353840873509033831487112989763732920517996006305432290618482205203381347510979261300330955283637817803736497961792597901281161771195785794996640288117707096203085946629276229420082448219241914479930006758378492945867164434765181808699012331076256346212656095284532078481224801097218466326788564571253916372906373327850596385425494286401223319411366165369772953615590151556392978216026634981678979177700001356502258813625447510197124677335045073657318413414596233126095280232615994856365157838430472024123680505610810046775125046572377494570877504573668732370825869105754113831054891134574140439570318802976411655641695110940025535691672094876102621527364013101059800416792033311835053957216025875820562765439124581510122969798086876980710619249191120670211926756467714841546690388622106705111785640460850845809142228013641372529897353240393059799682309358193353862817256258855314584091569759001704610729563767485160610495143397324954476413354024574259792666462293382362339002386172881196200768705698029783795451839980910761324061379867763446092501353999859578735516470984016841356944265551079038566286043043251602060095558650445107671070434115078033196897482261723085254882631047947927969534082206080966534679816219264902436805475940499656190819908118843580069802363491535227783433234766897368670600134298330396274752148181533766343666751085581270997249102846162309516583967147392771767232945324755968540539475803029977485632383704375977008282270228801501359979534832433602721475025088463807503594160959774856651261238047847701664322542542577919514742090919132962660805647518950448299090806085503800052789580846049941847405102648434220721280511985602047577494344732909772073201790530175565768281923047147963329303565367707330247044193144564388537376401999031792094147577083946859865603438519000008277641442718770768574148387825930915997326628703581139196713843611123021448116002196597099363882858973639650839021885805267747682431413714668646043548666039399473684392384971832431230654361231351788098982376958141466720777539577643620412655662684491708239716950123622831957720667245197141978000328442870347559964223805950712806759657557135029978607909459255600416129698898083834544012867870365766878394847991883190882015573332122398046904080779769813949625462523334859682630802731463366163832695969627662865534053402003434656480285222038698240008603699543223496427462427917122907301214045241296583634430226231380586567963937691170187324373583894809976898753807720389786540273852389091741731018898168267807741962352941524727114019073024701439184137391330344236224402039537556996528654157981055357628690867061752166762888695071392640966867867612879120929530649456929229882058606056448922285520917432293964564018275036808933658669585719335313617579220357788540740491891103619349308278664335440076440816300835283666442740282281130109046830569719949297400444101962505835607526885594299982375079445297015078023553247083882502337160032155200577711655793439154075503535007356537971827557379908144210929262475671807865087431630048576997675697514225917468543683783886961526325575268941048377474622874379753331544328926471482293341091460844905639923209314759457346438916608050699830660275605614240394503508401161257092860203060227453315622801592380211862044743695695139080817494145723367504578149943613476586566023760905986474566743848806854302277358098153221244661322784116691876411763846249616508915695679401417212081130662966321958192980935695652728894842588400198789357061582937192037817276165715074514315669474324035642417243808885083469951426478858611520546201481025178726246456059320180360927330457209196068262793324638536462533626543062815425444070562093801333264599993927661343464297815732430878769249505835533766493800849165878691750291651386425862396604577337307090915752161145919965205313953203694545413382227392236061577787103092490446356771514606536863259081776378209846902486820632036611325891884351761043360529574918054859928978869473067193530752207640985557885227531441419165821833578463171884810928553404137846301902419326013851253849892039613384503907478657713926641455409224850887911208320578325901354821166516439230648144817237612110199329748688122522696377086075881609660763218314990340507001888394961320442436713551770129914703104547189059444388715948206899852288441769991757248603275504240938393965000278785355200149221876299572312338536618969724510500532578869474750705326686317426870653333452642137350561422442775173546237635902467341209989686032521840003145280442042279987670585813798134845318825197107932938767034763145624157436974365829420303741698781130149380875758651605198410741858474850458231630556573884347093559537128033364802092631615642699319690783872783060650564343039364787066812427283709372566270419899730289764679358818418764024680934826761125872474478835595368002247623325430880788463042590125174700682499429691649490975306792130603576098807474834925300285721096552187103281546446010817873125952728069877412608230720447132317507660863103957706677072344079718115561239211499624440210130108915356866053347836389960392888424492870017562972591359945049025788047220963730508976711615930361287253899705964831677376453905946143763191707263075142137285147722471024911081637693010865183423749532684493302315542128555802240298164560804934572837082665636808266127214700289417775574660448807104731274759174993279301046341056166319877693563238344765311517478022377005590551037263663977096090821453806506478599912101201764891545567379133264046909852649073012503662698388306101640502330214283755590593838516271473956606472633472205075413815488783845618845432156467976674878198386614924645055660281634392338090856605324162644417887019553974721969551612200076459126152304066317724204643253629497334902275189512094565412184051465503705354486667175725037990311703423719506762218551017615046608111654146171192512773807881055703735216147964361982470366555169554699567190207142459999449272402063137500287181419998666398925150810196806313584160489861030708979497862510293407686943772204229245885531352688093297408035581312707624100100203067270279817042532594272773099170262196388226452105661664725310820747937530719083802475529635180608440009215148183164171380795473710927922763018272640056085459881495884873751364212189402594136086649576488095580197529029652632865731653515416808297249408824051883831765777520330950646056426840842074469520418993635852393556538453701524427359758506093277237534366232602550405173585525884191440646468250406855773152421606214137624286432307989432352931274352467915877618101372797572503938798618812489612008331698286689780051200615461523316442520704324888753937577229211994252674128493407532410180946233710176287659929300320597256304806971836764858427860080538051083567733788506297296549031055467958560987919965826579970961935176208098611911056826689517380881103833497205111427114221139685948256976615524043684142266797905684653208677012474882639956736972317040261832051645539088501246759147731516625260829214383014302263675030371558284384933283214940297650459425167674636645319748436565050664631738975008347712003981174289647164525469294631718557372386773470164806295774734797846427798858022725030460938118616322840561378883098161120228459611632530032416950498716599345873412302917534200634286044836946221705786249836588978574293779078361905974693818718109764149101127251332978684237750363959541453338024016993814169575851573512722203157071056050998090719810691353013147650741298106013633935848496137374471013554104431896257982842512931074446627201488419838535433568103891449688584415462041959523297435237471687223191267708673203268344839769978350232098118573852247080730984602470189563824224049886872560104383246952493352527208782099869853846751386916702671934392807265025942167158600214262501090624047868574352949929685000963718932475680126031093456054835714739023830500493682555107219953228070700429822077473471772913704806907876832836490273446565084643364256117631900204063682575835073415825584784972431732393785138461599627715421562229149189550032964751468779113037301645133110452481170108721407296405031971687765387409767778246392742820089939506257637876689205091898417041394481386004985752498783961301089634747370097429735881516049363439166695736164689162112229557827784907197757731817341273203332002034098572063977627842329499604445053763096765465412781038338356148908268996045884832055709015249307178217933678521158059573638631659851859737453864949715171891328071016776957301378373533608196659677831876177418451160694865074054949456352656608149622657864265941284195368777639059489254871848031650604516633643074479445241897341291165825435763119255327806956853788494003615692434566838015765061902586835933345675939753608384878273264755576258882813277464337165695796529854857849290628274286947938145686163813211868249055242639943934372598913142870593925909136905360072869092584141185079395309301234100484639367835438511310360655115137976475736409738053705884672369205075596347093074283980521507176435031998913146772823471846883604386956774507143982932917917850139315154398183900180519362247238167927056158221704291123304930857715176779623206120794134570664366571036921082022104153443114747577085049306064301832495394063314871234680035600687836687872219713160745258463929510116767644477796360549755268054452463771018323080565181379352986569525778580172774292682571737806620131281615153934034449333709536483910730003023058464745167696681381623076582527508194740706592261099063563989492904983540479334032171616596952086443472086943887331949627542830679983227332829686205869968185953333250904114249163490669756834843792768194539781573416668682746658524421268048504668421875967387359140586218870324168996085212052321896523439405563848884335485406774061599477458889259573508150695952920098798195186548734861945122702561653407761915837689779591470470486320764148696850318404173382160249800130514676666474361210061478856114480236015467513671418868592792490559968474409783575222163780437582606985442853718214892009123684419640760470800775633536212942927602171166520702046857122868552404395413465876460150090475551529433526256997807986253184517029640621275489868634063875154631354078915194591971844123305358588465017586116136244459339210178346372736198931148170642088311879203862403792263441220994774894486446203099190090427410495286795619777709269884015067249457172217555305239841049125837132625281810263995488495561590022827978830222453790454154566519207974014854915007822615665543595776106720859257246420329032745688360746843571328969795228928136394540570615110363871346141846193250987954809784550650885632924209353686663744112168050766062860260847569118399010339647053433137108188082356353125776981638614735917105264900640821194797040291353356895923124751839899992920903024617047513697647770989975224144802073428717042501432523210139050926714311290251144804706724559289748566852700940360112226215278371490161688933014544131758644021882068659451265562911542706145996530121334152538637366078091528819369041031975392857954872885084945576540125209558114168052922150082243184766444767092061607496031611043446815288459191909958501638381775972518647341061670418115488409586427748570835883861877722722828888237657334418246121956920934844936241623353632736081006961783612213034920052482217832976963383764500803725043971214464675388900498404528047559487101583018221859067152142103285282903810195781111633986607624372434060684544934076742066271447608016886924771555127375356108110476858628944388619691911474145704593827385610959308823130150521073717996283308752220490257417127416245626785855127369149096215218514027609413676325953706453756670034331070150463797598450817259676446401431211408518127910415317387726919470148506159861601039162737614854132829101140726851539507095325009028354029075314068414210568841742144768288792243685736684653885891602000249721283668527861658165068313127296008877639518831359283821951767024825365077234797952661745274972987049580746214160595179929257955824122640264622150696379009299899847785410545763333898605739211239880413150604858985215908163829906233939138941262389922110344503782344232269862635218070221666414802326093489977277852098038678958084303334888491558558637540824236435959510604422890526804865991435413517467688350832318283203488140172993419230314629319889045604795651912998971250649852077275420892891669240416009042520593627031676287970739476898244103252659654318038560051810712654035977757784199137208578038524260878333742944412806275609714075101493819512988499311962698145298406681917928450023341719737239560772692840142753431543011008700488739418803187947415219050319971292801858689656237693643539263963186448163223775637539798131188194677999265325206303986146812088610874211539483310071850224008137327302708540181507592241443672706757280890801201418805333452905946987913037899169232490420380049046881791996946158979034123915840422717842374589970591922282626810252214002881511578950534308244903089058739536624731917389277612987917730216690716103638136301121581693639449054972069244886884896543794622659353202865518269886119944920679918690647789456332081462031107581762957871119082053804336268835450363819244660158592677084704724747393902099866073191561403620164464607357276232817009756425653451772407654618827287587269661260134983562303876441352646896231964929405983029120967148449441211348211841939990229038847709960818697411215985768524079822880045888474157552876286954429367506302226476050120687715770218772495829600464531717162573315274333079235155819418146085189750091480282174341880085135969775376662719467749581628564973099528093199079653364752845841054292416640098371918192526405580303313951568585142639304864813150558386733649063735162437784006445961416504329670693538557892121544272683358196633120242519045411168543671438046124157095760133466145640074628895061841980938720296661475219096038336857236335001072188895032265555990489793189902572331536119838719104602387415836826623301061225898831827055101350632113257036464759336416688143000802279250624836647096541504352419280715116174289762212784124072955160857727750991239368652773449814341316228983877519946567609749195085471730778711418302645978470084300196535306487608445810485995764503423064877393603667093987284638902329812396447979681275580736994481969518862118387699877598771566284779686456862627633653056716864059671277495379711747127581408633159000906423482582747306631876627556676574766444438694004644288192856615702454819605189051516594814844638703608343208050574244336837609575481075321470743846584921412606470259337907365634902328125453983710587796981045050355372183373280183705100308393589541468959129349208608848106072510294927770178602953103657485694602513734215247041611854570449270654768466962407757669498122985643239646088316020264764101424714596316276865425614656623790459320816253267164900566533749003323435458168927115207128464216502530381755146929996228266133683914303894493498084432243390984435505293702575540438300290051226379606432637601062341784722524655269162393163587385452775309579051784809427714613822925960191732897251206283690957750876475051590181091353047383502027377128373384485305391355926710409165455954419906933891730715475255371026760525586619847183136335356470284054835589687519431882200138102160147101785639051731072848699246453435649261531414066088395876454394507203038747516884314311135157379897627795733794167621141801515959186043117851030594277731610472827650776940504127617601493070169571942252821008672028226022676074929839247056067210318058893930470687629752815817592365734946446352935941290761206313798156650819378299866683814626079472691189035173780665619420526907914164738217004181091066455850518427324244709205142456513719374866705978330137729979847902245463495101533725579523952346245028955621262989174619644445376924172651534164386220928384525608253922682707987471377277025756287514651296902242685585351024073288948338340061582471653372427835365911649802610333063479052523963138180491524086840675683046151159942263159531031421788434099995704688472900024280074401558133066379215279863795146653018202530269317333125251580300633439846068998681333587764780078940032656856523994254797499174886355927953178597333234562168416568346173642243226095301401336506750794435662688300416480073690536977931508280128716288403980662538257616985647835119274144718200144650992376857948864774301503211203082683719780613087567097576915839951461551373507273456280081842470312574785398003793498391535166957326910421201076573406486876756402712572509913090822122559847744641061305100587640611473630243989205807140913019606614895250635775684467243462840598816364426019820314774309459855486369279268939737344018097433986332512786838852460915985312230988668097931887427371001318606027507629627162156774389197488216986558589597935855314292615527868696837639009471022318398529782137269486625629314994726058235100900069342475318811214859200409045567737185409666038238326471086992555790910957212167976090192778547183966782504309430476625811202438065767585374474429547917722181989225423206469137922699884010182989253981182405078785230135061544639482752714073900617659579050334570801421917755900672863105665964205820801393342908845932566672096372542832648202839427339110916924636348841266808387714196114522403524669273523455583957386766731165636965380504520469976563060428417044881111672204141615456569246294837137938997796405059577489649334960124643366375516458582597588289733115029044984118265171858916607195835183994106497954713314065997164600741314337745864839775174587418604736345336978409856340683874233929310491172791675742120513116715711680729382092410415604511473893772774986770569687427367368963408390612547114138050527950300389901406883340558527167449191447171658745233922690768177729487545527100657993956988602815860974909929521661288726565517863377299135751962555825326039500757179950196582118663251907992549823589549875385902609342338493516507453877267588441544182873291987350694278892956346269169330790402541446678704554820082674609501095828802703759258106435818382142288626957385747045012319930034931204937846259438316948054562870833703015852419279187103907629467835467462795999786424244312667067211012358437222121204310649955966408271371439626896583821090314667969521440151757379873613701276671496501446651224976857964292522171775382174143546845879671426944154574932887448645885009382694875803661389074956426220674938804803526294834261232971938838999166778096019745436138172258769720375581347072043032759084987053303521931142997396384952691530210450857068019729246738179522547954122110821870012184636057291987310273599366154730981456111096495289481201077518306215167178213523319893741315072982759355323834913613369226980255104831483595201313413101611181926272796172668930662473317217737723451034170421655353642095506626077095460989303876561842083704657773265574049160124569094550985164870750705601343125231945199955009079346792798509495559710769185176662383875324537244932046370150081692366392065716905011969386049675576430798681507689299260028995313877813031797511570982533129228797543021628398346775476199520522114386163602609728420982548045403798771612943351349587705722268962150828278507260533034967349654565239097092432124860017736409387241231743955833698563698391935470375566109038920011156370471678882703590660154325226120393101454082966434042353224663010762598181163611361061697007511676770722150521877928030559283391863519410039789513008944679747523959526748934441502617606959150964890283175995934108165511983849808233831050810758492774433363211836508671955096019712740199380693534543918644168799732357481639555229642251824139351894544762434936619058532651100859899893544898095179559098915908770861177013923685169575963391878541688675676403507391572868230224184967129594782232444280922347632155768997526714494587145213028015500010119773085312698367379527063349203942721103830459493832216930394111230786772336718868581337233125599038014045841819515581605006240352057007981014693019695570640859531359990922816474219586393865623261149809720993919296477081050686186204203761968844164214598396763262802058707361910330579716714689764649098906422494819662949157948653161728862365429798169516301746721639889889186989946058718809107711459721470552822567869585302244822077596585779879272341133745922063086678969060889079556131866162540835551143966539303880591804002786183863518582199289732427195750518164365596010781872350833951080631048756279939877384856801889961156506463054080972130185648019894896466906332936316556512106420961166425797586281349813186447621436008435720481971469048854410180148325643565991259680646178143698491367456914391086598710041109755164844984092758540421776534778067404812885409286556290979198463896803499284620417249855848266437928200241718242552099166383678897669894209334526188559859968602289825862939442246768447893184148143757708909255233017265577694890316962276406177237531854131130334727307862893081387770576545558891376629151549796235671771082722620412537257847389558647504581839000306820727769362094785153333939762635010101378001937843661254341536795908640446526075927641539280360461830225847932159436352494479958717170009293902869736210961499216946217332056948103104558614004399486689640263984231654541209340266937241556612328333828290839923154071606665814252138919477398835384351002654148784812054581861942307688872857687127242074214567454069117536110134909288124474607171710932331009923223541295663069700909850911333311411320127950756642176116516192025893969484295883733943190582341974734782024497528974293264531855140809992356661158827253865226984915932712404222546623141193788759746448336988227040089640836186890149657859452850118714743964392348532853552464917994932012431169203635823293417080124608675939665680232354583054728437950180976274037364885836717518755201334585440453683580233686464474666074428342804280389413419199114838110375978510928861801181393507763914224349861594051941134677989163933292593318395795611688665270389150696011846533981257517891720179793511631482227685132951362665348114181955148860522849373772930100897839339079367247877032983756254373583373877132509516358573176847583124090633063560223858300276814113370176454479093200075272611644136931481279648109535854341282093425836846848439761167014094389532676369491153678730204516150463133895474878169067546867623198753809509029719700771073764346142784501553630737803332412575150274243407436345935873865626319385668012505201187414474139231664126568673285831251266491825747143562911937455471604096750115789366740606197297103975223962598510378792620787291554666966667989434155638576361771743453058766655253090300652032056682520876938640594217662340654938027759534241925292944973310037129387292782331390129703269860149274703894182396004693558722584566691751720043576829607680535505439972142001235466651848289886898930919235217881787057290679988781058354339754694532921985717478557140979777749795633324540533070972248770282785853655538912228474384669704455035927553079395021626004503569877756289150847222869078788770667304741553412619362094232878514856328136127057819385505861584044452826813589257741187068073836956003821476487494480324674142643934031746311006122301852836716711831828770949691638975248347539638172168959959986082351746090347516970665250184435400102921271323125828249960217006258323129164311003377874169285934888120129906409861324030679724354231333861230699537285677831628849114142039498412369165671304174367569185786925160439344679512285659046118659768480513723367998516451811061370432250192858646044356486228827228456961116240502692375742076692768407464962564122040839394987819687068704954560175183066083229964549956420470588489710948526547347328863351035029260745682457702116199199268988750280243940947030636426455289546925394267272219565822184315110182099634762679570251204945126892748345836520818428189021679970466074306972482407058876287794057320928056073024775836211452164667704937560057304778405914754742492114257562271331034924714958081213111544298554893502307302851486682665674042888966621960418515998613316877750803385523465457494606312061519348538839266711659708487567837183480577141539356983932550384278778685878130502478434173637963400132317828860432105201159153360635840392377487171470093689578699709530633436079135091116253708218479781280513109303070079156459186437089983845736074016968685309624350750489083340280965275743554505934887394731612180349775035738056046155949262464742266054549340825789543313956281735336079376930194282544739853334697568815688613397392724035832325088611327966365673079106795776426980218974219267695440916716086177436738202335846010968058127688821582311722740704210177172439203170777400737248745021045356328183866648549800480806408391564649961880956511000611270834270968954742323131776686365485938512352892060911417694507121843361453322772806274068443315126593246616385097554264810919283290429447044272681816416967863756869939213736872499456582471281259047452629689703537297381210663899460276938667720906610867103119631026572617111222289372738277945500029143683254079217452404912329457090845821252877485454253673148653650643791558025131471125227154863309405066213363300163679276569690720478895490574131544945383762497821455329765920034941365180128023175380075846513100058614026368293287994715619170919221317360555714982682887786016644452687676737979566154896666446854148522114878577546800437962459376954853245800953962336412384074074677978282867269740771063166120191958562033376901862450626145874704563920037501910142719748078753175113785235418091852375890092042922952505052610337964018866472959521200826662643638834946995689802040778792757075891386417449811619634068311336398599241900513023387104829447136230236315672475512924030740919692638756067228604814679621637514348072229818503620544465926529623648846478541449789880633822182353007845930310495320765502903202127523338584323665389052302643071755368557603929046489815684212806697695196653599350423328738033167643269981581895561099181776928527038929283493394846547576738261220876329329225200521751347553910495401873664843629472061290834029528243887239375164415198002027897683460747508937660091394935010363864894375211668470788451622238081186217450188503269606115844614765490438391565167364653216712800050151387169611181263367856600309887701823912351192687040989556681571720539288725065284687906752413196418776906534376889317331619211281861924222977968283503773337559048590183831869597615293030830609489008411874297640745072529376116561425378418501111655890384240812911341899525955788403783687794533128341103733458007330494505674755449293221055395894411800037399190521893707865318598594380738218086905981996696905778062442001044362338359431193238789658225470551522055620149822170015478652844645147081101642368274936882595065866868053096374237144000797916373650748251087909441537063098851867643671440809519586997809991123892603900876777905042311507366155324029971538631986662800261867891175110356496372221461850310626351929108865594713805934431947530232010367783897165325398401368415158529599050252793058429865527741438952927149272906936084782442081308905904108204914825584454260884991079058778510955864971639040221055386061913452407901835781952382815625406749285147913794967581335419444602405599193334541899127898872000223048887331373170683132222927817145645019096137108182897898762140790976289521295986689604840948366742868019817239740336477698796617859497381970610858323592840114546644020825804090596923393534497434049725511983447319650362080935565317927165543797106373366089181902868523901861322129053851011366616636611611815829609830484537452789769052462257462679079404036681846186010367755509103564066414379530820913319218069322759713333853719502972424181725398767290450240441562074497303250231341187799808374472420855261254741557147143727849889672802402496131486565076242482943769631276917007579695753086209588470386791794211041312917218720620129706239627201391933641560805338127635738046668154576500845701443205521908384306243045491216769553278436334935397786925262129024663749602719269679960603523700493816613087930151867322259973291856008284172771372148466912624922873327684178685325441075016770410566817947987332859706268904345178693287351657231066089077998296911682616349290409908303633366691745641168209044916193741953523347682795706712401166714153599094455235636350216931715359935029251583481671785732689711935022581832663470779340245175835620198516266111743866991000276729094642619763972436419305939401171427280092805116624629946342736191004294347927451211380935715987127910792705786822846774948328710151990091132502869995239529699789981676265395940314361168475465129733319955459339118120266444242679476535100244923917329531831009153077092606272031300398762042689264714812472929822313746517424518777872199060317338423093146964759816687379613984157496067202455919074035070845346346798844371086385268632509134436650174688225856602779254949594305742701267513685249552292475826799363349402480293693005879105376665796032694072845468300968527832162626788341672311009335561262735450384563087909390071538640615416489175982803953716861313419357415392450017173912894219611728324818991793117887125759368783878076846369700881290370068055551671823696258063705971404689090975880772385708860112308754554867623238629504190674422950665788694517242158460660729403029870302708318178344567609895946135734721853942478243013607984197987459320633404334581346499266348137554249675546334575595098198350815022174369653148553815591500635473721238045156764383654740462296179126743165156041067326514495302966893428119488092055591408348832704961860636337306419626911205146267605863382168653677216665029800704029471842145934866467172846716159956712607143511108081432442829184252097049324972417216973088077091443266115891071598053374490543869224683827547837582334968143667683387242314781385939759152009690624219366865987350155059958723944874592040661727187827572979356854586979861291431034689343815435658168866066257124443189963785914568443046978415091964886861627643701364099793357262044314075115310954415398369276338121960526922299658562076776236054861408398725588688783505707138829453626318811653751600738166824731792475008972874703834932491056195314522667453474375402571387972625255777879608312095713753075489220219100280587113834908184942268791925974800035426724086139834244425070730376277619516209394797346300448909057596911569766028533802769260536280975359685103113646719983887970602472356823138202854301799051399906707596611156004210561531133661772806427959697170063693138626436164821030340778518190428123898793865003961233139558885860351415947977378944874704695714849431033490411968513355068613643530092149520540254818338071520820858533644980921920594916000860940224272128028812738371535633339883434670421485002165857034914807554563323612189992746378918410239084782038318739701550529911684942849057034455991808861001156979987104549710252958909618095219014422334607428604977749001409208384278465409099113722012290645935046476715164066481329431133080371029234094965435843555724403725612393617333193132084218486396551985527101405415830935662133061509794782620398697251308680109143785703068793796770996556058009326847091110256469021306958459690414236273799657208389459212438014936038130890078694572046583061877388304686086724004789302509027471337394039024794203102497187806554025782025307285354386088205087728734521088995402927774883686876365203211309187699134259093524449205606194761106865136102424779047079126473411937503226298605287185046852921060712155633001175254583907011202458856537145197283303732824590118650617886033385887872880520324786895870317856537969018119959789187094568224411962676588763110115670918378792240241044384197397730292392523015587058226454142105937590609411013079985598105439101391365283373310902202641603595351871240063820313636904428289544849604288318240136910345205989352035194763947290470949497628334282064933910252458859935756007363223279727504889724479967068429892133841379989082587350720226624155620499852602925979076277330765685730070181246937645911777042063986318632826610183119328694843899476818931540696024292529483571580637896074932662980376070056376081245595084017639859174545337721021597036587944103127928708841772823539178391793713473503175029429401290757334324046216690630091098840735980815943308857050898364027046036173516840831115623319034130095098040864537056920475615889794361408786680734601980026047007728944979946242009042930360512827647888191759567934871669490147415745711908766300978438376694788476805813554815995630242256985428930838554093240300873768386406966897682115077777696434895221574168202549008367731821396406821035003191786858143682736288491217449363495953008799754425556243998298910296054644702325003204717563859365467544911559002097379696297866210302445359785600493969796349799128335293968290015723012214514573125050108388928487404800933188999288922298727396572477824297923905860955957691876496436659607499861536752185534639384198882679770811674270321514026453559402826353038635601422893666566535545555081771614813246079800525355034122736143200824299556174709281203614680095063387738543582650122883411992239665796450960210789226189317810904655451061126207787793558805104484126921795140171507075664651232905252873673331505618902137576530135576075004139184419430189164140160535542869493709576806699217258976842117752459135345938281255456243170450539076200352990071055550969453208502691358758590130913310485772396570603532648765296496255083162548023664574379121997602591030572403543645492511221108266225239535531305976994607743839901882372872983234105870276535415360042694177448262769884895605547861465499831457378713971394010272263738310368957980017156416301516256424939583205136646082386161553133008207736138690157423855139813908516333708248611470347152665511686636125358844193154926404909999988867008400197406767587413809571569626256393683726784244995059490580831783555733313764907522082006342657983573700993628816323506268789883918474171420938197229389483064099886154363506014894878163483326460632514159942364350975798152955488421773148651425013722148892739713446816704150017661286917140138583241833539930685709070552269299783955338197938379412513446505000277653893563263647228080651169535621514792007629544554537330084178592759870123682342872136416595308215401588307177020896504485567893494702764858382518072207270955699950198084280854303660889621117543743507197963813253043405380526029315062976543164900186808511543001773067394103018700515664071949278384326592696707781411056285950834061085846053822147677467619962156576654437760067573744225630353299024807099902867744823664107418388484619813961917822405626785452797935509546648953469691995449828478776197479595324825721654572301294009815012667982389283250083662532793369876737800365121257799761535823023622142237926174642221021318389496626733298529069979180829864505722943085456057161549297731466744717611882126356536840931315067071538896236237676912027253262152788850553097628894173215454501885131993369537046788254191142853751217680438970026878948222816330590482723724368040824457380230819052437757534350622843766333941985986820629319930689127568143232740944220707316587649347994176829158880817741631059172092616021035634962433551172157853643853254768428249630658082783989034327294547111819421138875888995066373331596251638658919835733756330202216506930500619512640723270482342525274259524364166721303341688367275881919740534692433557124694861845813685437575714810963981773961759719795971186014017325064880437141167922605826013051333741023258489807671567893526253519436831203418070864633641933650814943568749046975315272153782048777766468214650605759371066750438680072430460373711896575951676522985403732379247397170313975345409518819473881532304474177207651822073602056375031744285771982816068144672650234351212521419906068971386671362001528465424687936267451434998009097514283570006244339412910698870085210818835762400466687990371633197295569045777256589369136473763832450399281812058753926619702326156273664769411383447325921547972757951794325036719704329579647140887690087600634690511736655696466617628703289005951483488346942926837612396554313365540559732081770186804946777622955431482563028426222026336579100669125753733701275541885105354891452561037249578066842607008675913094690217195870093594739896309278011522328930517230778248080803318974400577893003091722697588301637533190022091156037515276002321583733581201221690966301077851540890701932598742799662823591310702223377077304513085077230670955618984825440638298723154069832303591828980347322855021257682920839019392663248899541884700577037445308040889457443266029100382212074351241327604399597516859354173458004667979158672483702177685631658187878219980835213261082520397587922942461314734217446061947563848766235053032515593294750557896048451219493845921909857777206035750918927676596939549349515172885906302918420927282140902210668375906572493018201976817731118296370063618375679283485344074652914167178807471320393514983589409916783132615389088419178912859214352848143640318814306189118602192884979571275425188377128879936741352660357674258036847546626978723813384009727108434506276868401328572015905606334124390207481838912895429373845114769317574136557243005248607080386800600009575777657051766670250729607777722946612313691016712824135970525504043351612304574904754131953145472018169298505633548150960163576439162308880263043540397160746041177974267125830483586295218380430375708324348841130387199286810482584339756255557732302366223699120518477703640837124904131266234415184404712625802795141039237197628879826312660358533133102376381376020192153473167091108266006827012275541204377699774102630061414188479500265981006080411165145469209579907144345124430810156189429857710684532640672121186621535879812401929407929440796045933942692851075502756254403034284420721476817222862010073523482653164218851513190232095091019381194778479130538761764608957144572631181453522228119496928011997304046344960370195666372618763665111431348769332906128636077710218461399061465085290767079343529841728134890676939841604635158112105891567041835500303659954036802826198882087641669703305277230501655626797178387556603675611495040025738766919095760330948145977060455512321655520496559718996457516339635289666929126690947150237969582446966240146814012758557604227320382389389483057539299527672701028368503942351205089917342359746941561710382117479279044874191202884239654201899464883726384808469991698484441823758589656360130838617329128143990960915243508712358511939003156801407141391939905611788682049226242544996567658600380396014266780660914376343392861112484566652742138541524406754783832732177069907450132785609510256908730765821141858431733763250859452935029228124057613196238172173963903589425013953061826059643856266460040983492957147546309756849239302164959911765760834703732101915656438963183496825912198188883969570789051112074549948553265211196221921933895691270214537059530084886391920744764204834360631740863002268939216174692818707362697244334802393346576638385664129415962749611842381540812566761952488627380892134838524222751859475129832243659367009923918534707496749302424188666988934041113308984491224561115710772728067127691299610526681114482037534696322757597424378298862988157566239436341522974963206674824914063334700897666264786178906174865205866383960182944498651482021245316391491619863674126475985739675117348406190856334696123514083742905611750623763610015706975698306157552858601635257576274058951346947952344694196358078297708685564007255005209022161019517215721870198638463956263058931775807665371081796111686608637201348389601375321586447196570043724901843438644090787411603346475932961672204427625062549984496450946400451894131415540481362401393318027036769134951173882826756059400912618974668704855833315293465179432004365934399251344128957195691605947665213568875766869031950097966491166566313143507180413354120371526879915399093242197178821541308255146980873032383190705608956650679663060961015958815678453896104841687108340071659187716729981198071707242087262296584337242640112660494293098148020087110950090330983021829875918062723771701805104426608290151062892892209962689316609195971654374768030309090958860104638994457188063327812481190005506981127644511785572037895607433423317604697167409502758247897288460499616156468843673114267123669202219699275171891009329669065983425968508424573300965951903109315943859699963475224190559762543836305169906993352197860262196559543005127416313927678645275674468194632230016096730558864188288859733512707663272899535836282609865503011106902936643615167742459136436643005261033548412625871116194491506471719953025588364917660483475697353719274591644798514560929845440602770371424186736524515428371850360266605229945306774596976105075560519529760231076806728636942647813170464022001620061167556976462619008141316944753527671244445065644820099828888529133062854944209686391262116074158322730130019322214216616420210818361125648300479326126341800764181077235161259239375010856644667121549595548954717119731072868121204242393092697848195755731220265282548265252224110378663105265859142885230242001581149952786615312929503371442869260901255659666096747124940911764717786289237907687727865731703986034387716654725103313067389731453575692778800978243483910393914357209957606789908053454216906595794763891233716616720617218778456193559071140292631753960926763213528518584895582249072729543299902373151710557188789160650294258304034865927476013435873120121218897613372907534587143879009108383123565577963831783245945148374330947293679424512891756766567772761602920496759303546435811496068487217250075214619654107094376984229337073957133624288852180500622539733285200377165200512300283899162511740464457225495236265263118081103655017315205510897784972017561277661449437435622654980792868853777367075825115355225896133391694834108495623974685363143382955928362485846353059110077173226247300431679205814375216928752892970079009242184945638582604407299106136446908359635640384022880129963216195479215624438876003260036981714647881018058149358674881779645605143757367521480310623501381343472289183891989543861907208295940715564230233523160147791977447768140185943720959921549004768764186058212382958912749814557369771194546151367120904936994673281516546942413097774321910311560831335647740158508239782344315771130771762606220522590372358905072209528489804577283716692337708100652227871289020182121033452274847693592481485253379124649508379665365369459992240920837922718794765329473410018870078320522866978802406250107805147144943966171681038988270217427277236649865820430675527624256370710631918204558721163274467036907001471420948462714778419736540901848223362457211445707048329938783410076890668100843234900718956673684027197416307927734967653557461953210918815335759674725891484402742780581571215543448449246616740337851625575769934942645792704147647609850218422323066385136064523094919448469207762212975226479740270393538736779418030090838621977213117670869289580794707621090029754912052849749231751416573129372738011761202184185401438954573675579993592905342627701530173572302159222336342113174365281889390138122798341517771277307651033165851408049579553231852902824886464498376510336887922691745588107143713233495937029527741652100991590559168532345902885769317586612120394520554881110497299320059411308053447223419908766313828699958999873076872036364442775163084643467841814522788904602194410713787776611643040903509705761227852021792386219347224917094893498500663260180224045725136548596619114744708217832362710666166784891905458187479908417975930580641103062489514450252545456743588796305262822325905472841629198076677021222512208102170147080354956008244920988014371703106569564416050494301066662804610528656947147688771201443168303268808225463196650432712259340016878531734879270195559632516889899059810991099689822830851194336314808733848118402031546231345565388561241227348890088776280191811128174697955601738282204446165368272729249858674908652354033407607094228824679245872498787698222845952690447998341526112259755115603210380546758822876157381264516502594757878341201809958964133870528452639778079597279771803003399115040988682417566318250589260300945812189286282025115855270976377760134523238860598560361540098104608764036139591772462893752792014463442153325297879094131376120071223785037767192652563295508517098207319790552603776429369521705562157033927639074917577611329354309812339058291271343453849115344865311240904927689479699744400037440553586014737656314577833315095535332281863884247168939302901124443089078246265733422486410167972728342054078849683322170091714411769536777921407542411472716931199992671918040156527716091297447235441888749481830331971828460048332529048968558918874949090712424564314509681575476196874015026423264089704464747563557989745015111389017706522419229876060503448193420724906435903118144187855111808038197988851836633354291951986114406809393263357300965280743045861240316531840289920874707417317475196219205857705434493845022748109129275765613508049843415381712107033326532126347384136500568554269277629530389404023355767357822435683645016385711814781090821618982059078722925621552424174373043462953239267799224257329552851738027111951404228028059814028459082218799907048366649347357135410563595434471596141373832232693320614543715236989632171586126368638075353283574117989176044983956553584006701362723810536425935253721912495948053581398551393862517001231525960200533773600381803111454845174711206634768154834371504082602010985610003132897949333558758416148569053683706081900499200314253723610136525167747327631371765378966867793870293825281867515610338731973399590596224354895441500071491366307688346159293190270629725265051113265339682185113332352038055579618614261513765528108332883072191810323390749059589203872828037144611804146007552136287844633784391747381570478295505275197973731105703606810761355669110900251322553893234106402687115349006058081544539436467910613098945095995445031168273156947004414264831131143638550742300496799586249178399978736421883070078584954437358139533800794641802250706633261311596178171071989759156180879739892446624633906350138485128443242727139175301552420963886125072974212728663120418636977387252925939702440337611492366271160220416276573529903531746163604872856964591671465867514926686526129280176756879306732264719453104634785453040472755219833485202857810629596115786705637362698490416168692930051994663277590462103092443561959659719360923448397555690886460190440547672288865159523324438737514613148846976648283080667676406560168905225743104807042891184233081138822720324976954319465541025604208236391823113585574945133018887955864862457137638855829553436324373588496909991350018716552254781274502046667556110199858205758701917406003993723907465511663046412101253866571891862423433469931282964505799745430833021420691692352921588540082225000850821593312481915260155380140401802113938674869963466925991275869896876342925717045469607716588233763970012690271269593490526756975583446539318575216359086715944535596581156612830504342766141228579168521773181565966674415161702922573746582357828341774395097893478162972457041252092074666973043069794090883451686494319646397847098557750504406334711632227790291212424531605314719776290135950308704185935847827607864979794605468358988992670936140687199307053211786298248772657524517057176892632075423485657960525852454360939683473138579354220978759841373381302986627778726050084338524615258057825390604591802676148082618069143476706035837226150244986130884160850105131894738014673169969409298768481881523570558232599552690689581197446681332585142858485586952817190140270064687035928997514977699637083590917487535322524920560945631119904225914594374803840561149149602523186406810113380266823950208877645592710539000593660137887158896058457474243890445505082277964295455175858673838819182105931432602734235063701053126609257586906205701621858861848552890655075152817174913241391951519768124782413486669929275451425364301964565435273301538898463391497964451336750229475961345317398176626728542718431747982527960342436465793427199842091248565597271645698954197793685991465035515441177334957045898321685633655761057238311892048982025885170419690464638454564984832901763846759662426772416864959173761128186693893674295493027434466861139837873734430341148073368444606537325525540037537456212915007933381897375436583780982951272081648273365659178026385300642456099622992724052979891691541429400968870919006385150311316435494016211550559961492563237741253670307762982964638315567983439277815471710390540372023233798381998528783590798499024636229288744062997110550802382300859359763592375705736354033964670365414224638349004846717406163885619219976318336265398722665853054568148871612634999558701486093712791062552294629900881371928093751952512791632389116544404491541970270922960334471861707074295036903912806004274739942585021687701164598427864210412309847198423847667969843100484500657467088119002679616409698205071256901400621871209183924405925044697001664151087814756626321492773595769631096285117768008383724513206518789528867759762437442937751010386821615017759199930601409712848810430179861693319912877348741602242926658417571984147496377242729227180347589814538869837413322037556495818044369112299579373074091499860698804293971852239129133319102454005673355917223721555091484918047351381953078153781264958369763644285456571067918131980003853867122718168591983882681110131857671053876201799107439648085408560487172615777120250427765344885840774944941427088438546404322888786507575217369910498937422951576899750614885616586880289140366373842915147981443948847168673334012014928182657538715267846995752149044824957993723693372149738255733944772537744629162729403429999388532414168130287561671286244333113319199911163259285519777895619045206875926905826731665276087659692290354259695919689787182024386660706837484948168180256606166819497061934665228091493920212311063938837753282155930100167146765919592148577264705164387050193725856014082735023891486892280975314205214416627949397886460502644552727911919528831361052548593510352945663581294943135854736143196907958326716915413928900280548262412789147305916869280556664331507807855782650580920195884384217163050467841025838501861710858630619911549068884501757575740988710982048008230201393327216306203046545558896199695917649591235147027731015814574588146429057205134121593889659657889943576450553617131847430550558626222572878879433285433038692867259314046364136163037694333333829115115165773649575227165495890960514754365769844430610095202396763824993062553226633724547345730146147955868768100394248462361162061776664158240545001766076090228158983527043946811055998222003547358788839551420828790350902013792260403878913066911178643537721645326023161390522900186870400021102839512076551121801337549771551183735863235691629829169818560673913717535010834377436523802129002326023922488030840131198974220964589124690787753369115086763344140455656710817999479766132051575233582756317240225435682526885850472600053791217361140037982746143077136897745490055835629074666162522124593224883965928749340290414458235032874653042146668262247331191070489712736697211279473721018040238159903729253544336553470483152280164448837345036148417385591047359801124548182248262005510461071661937268905450702392815430538251295305821149253769484103533510824121212459872260535137145630069551611170346966148062578478454491115487953263761991316105320927736315559706979234358305840945593885715040095366912631272952201801961353492651380391410072183706112593681008169599848269327838330472156803873301532034516839921676212089794884545455638369752824842704386817171557430400427189206545563733879614183315282955124780829918205837705217144078777087800483365539980624105561719801908079814701727329903537643190941542634328936174938544055847860000526824539527748436730134147125042729345680105058751029654727076843961250878178127624783527500437249026659273815390101823852304318513479670956158783977730674464330082996639396702565278595606473800565880957213018660248194597341296566650065869984068569798147262021190557034415819743915459072088128517814604678401328259156557318910163939919597086620695686145892424784616777134193495239923347516977071538811188856632404137642044661128327079438955621855391529141866965503137568726395629602995064177878649581612834178069503987686055834944961718888090395625585620311145510835427487226274835521308804106065393052415963308468359960201455312846115926121257257847768638979949211955376080088752615175808726423817940050110866432881752121667609119011731243260781523568814475505345102564707177073365432446989480309843077280940559946320439652283488237170624744245200961558499438660091268190257248820837454418386553037186214622404104113279173442398470656793109328087901026295674224176416938557839296643119201358142165131459073662957700791764552088651603744389754424251520461650988661309107594350760462201439338930611731126967535912528270930514114716849202117879602017009533416287700320158626986867968568330873809287989900330403041320551762708309532305595759644528261892271873807194912382168465759216987803629021539767497105735862059765638597455400046215875790605069830578926612787670417150427239797699466734979771042664450182221424330691056130287765406837174877724373122128349314998997656438866995261206860892268910516741241240444277888021057158322229825293326536261784980990098119396178560163681663096800708670962233237903843824405917237436173452127697724728191818693158798536920390569247437981423469641107110790237939710743621429922445428828524403091846224389228652640896010759717735371951122541286229999921559829936335623983052731649077542254990950634442046010507252845333769768612848514452298482657110791391966837370761046154970903864499495457847733812175099724335380174307946809620500299350102441210779862121349211306575848783754243823650484585468219109072456195819054998169138934226155739284234786273562437348654996823409221802659704995886743012406603670938120250855255774760390563323013940307129297401731314321120320645807509426193878758728113193930527890437877192249447797231979251553629106019225716812904504400682112567035297133423620561792207463075564282640665929984986857126554801338113953454413317587853413558509947645580419048406800147540698812488680009972879641484793040635716008998036684191068480026181862659061175195604067749961550409632041748900755991206458562129757336255152962714874376236225098822861250008212177401864047143006940433055730612858880150797382442017838259397963169617276940409172278765298285834669240454861665457247217160174077896348901770175637776293293498095840073068766999444900019936211975127335891373679402159693732279528454080067164657428631355979171203975653404501710678150300484159918099305252344737094489783073597785054989953295887192955353056780746164305096681959334410532349600381295485856220625916012032067276288952768758332137847287276026668417748748838812056317433905539128188349991227824268528478632587982872386545018801220750330014516931852695629275962070594334427844295559753362301921213735529733574791706257482063077629258669429108355452308969695809548629944976592814354626441434006549451000019166599862768637371644751528758514741499116230674103013287898856618589870475266411849856793179989401757271433006282256440830464688324487974370660286641671658844236568711795053966747631936003638640568965141199041161663653369393588497998295558413640655315083441945892097109719287396081105974289558526866897339233250728729910563700297515374700489412633796654493077104564531430217788415032173135590242594800210480350808367679341373828402840259067029483165404508168131179253168002971177618927743978945408081806341142238959005097314296775958695039268002259629185413546505385075400645936674354098247904651930226602024784185122106579211009320666179355901273892904266009436715342102574254292816071461301036855972982427159200893139665892170945977565205946372342899705314681803845178981857883296562581357909387197373400416914999195500360954497003104447566183675679647798333445329847578303441074689273428093140574309613936560315473903971746167574477274171696322882732931922810929147997794172249297799275623606863630915754922409437561655017864702975965637746383711800046693760663633386084172445485798979588150747665810383994217716060070320976722095500480308969183860609257683304840762647873566355882036025540518435431466949445390170391886911459333995805757229227522956704617470282696999393757074790636138215603108337062653268683124799574329713471062065860547387491783996344686773764336027002918239814697631561397896286418852976475614562799203077903290669191694215997618416311734036526265849132250541101515726318746844952861890478126350631508404936276249124397174101652882734150729029564646286569315156001037822653118117502012574058295711814646141369590228588712668208022059509028548733695487067115734172411876723019942328363835645328109216535177332381967217824713627735976631867525481353218611403530966108485675177332874197512387080571217038746456283092106874192374337852251281043587767738803002106658868935292361219163932988998316790714017510865106523933922849584825034749241146992155462250398691020518007326331071924177668269259953095421687192128037916230721854035038524747463030965436779386150485969564061943798213622978001938599225881661085035757797042323489784301859947062181969937170328443054598734862773433998345415382496067670064307376819624304095306061820062665244533174205407504462485806942937073968958954451872186998870480606254305929212053400485631084705343475589682658507844424369706054527521026609847140129696141439092023239918361188400529370676203644741705470709337024637474212709295304427649376413843937394173225651958798532262322322590957584421281667415661268119802789968651079903435473273308118321541084502909770220997856118572237303654910664868224582451512557388252198344807990141583286399432817650185313766702556147599382133964875456235090850004330995679437034103157712079361919878678936795006853630196413959690202918340002099742613066048472505213238017712166523654676191310136993067840057165123465067895853991546786299410988009326024229705060573383453611953860027719528117371206171111892168006569915580016839750262160107901884760091089366900340219384259705439636321558818651580452943751232617225564816200688425222994668373875322268767588301311053013762298736841805833508659523657654979977494759370819186910450223574933927415880257454399364491107584725938276226530803357239484962966797975691745157499032823462120694897387106015874353301083514782681520787650679936337392316572762692934285107459967827290183972669612415021933984284320596008490508750738509366287719677056996785613317803834340055829593976037388896631761957768179383930014239085022589580931155803476491927080187511460342907317998203196157909790087170713982311250295015545693481325689428309929757438278781174570149157550589265290543768716130116372017217770358025285879404864607653128016747101337565098191254482520760065627561539953970136492246944978474934661940413412755442987449596939389433061604226679527301883792726286007074528563762285703985129688240720690387056130229756966757174820071522133468742643730922038454218940184886021184978796213729850562266451460808038559699228326178025441139628292571541234402422902809435274344731405649611832027224967689897593911955119523564218043001309460565453990439083168304289766572753924711819451734968786009711599694878732165166522306712256786302123039004637750130636442169990861375352217009074300539679130755302448213782880364685735235945136929141120194854259831031673342142993506315154131310215632740412544288618380505086865520022570302831111859969678852161606567104361701166067881514478840272790879642924522458643432841581132165651958450983645390616431795984288510234074919528567323813647081274692077566009410664302247777810912099181857201010203870673759294710697303102951178276970827261545612350739172994415792000509832297158537928040386575139515543533167840938736646595700316139637773632809152383259011475912985741710694380059077874462584751391744178209654430123615667773596099075735390380076581329127562845189071617968861462706887362504008769058859879198966788633353665828477145902214874089854013594995368491888343585114178106925173158648010533893721559485314871743019416547771489702080291458649166701011278514400694728664775934532222494802314316004158317648370044187655031104630337817236806441193302674287085428141219892514834373629736583133294541340885694601140265063404989237839159265433277157014436588577416736709058218015537632514619260563494255529321253374805425757964315570623775032571904930539318485470266698689684871685920356439677648305556627916245013320261233259862918702966148207134411328392922311871736778249877066430231755914845340096022949020620344811391116521396232317784698340139635576510108184522167994955915773294805561251931706444481894013227480136579728018760441053785611635330405575784923670322038700572283096117158386824227347426314469831557439666358597683103903859029011521156368228821268845245842988610170786528328592040520703062402110475515884074505827404829817100572026764055082428667018021203577420362182699987199695642763788028775355085315751035465624630987496362225358865416294624555462990504328486789146523327528557657052375140599353351045360494011262062804382754119164962719480383825339481156368931807559069709932085196761180909569366127997362077653192334546032968694450544218186407206627519025800284117872470610632175606222447189013791018290082646628283531488680001047052770140586367143099305961377454545586668547265988412942538023607730420975474180645870169618822008918621664090834458543744891191760689041621876750873241139365886016160224045549809083001942306162140667958096851229859028660396308903024297914072505736520745947542683954389019876070015650600395851131660021148207512203768145402638631220207241069095315019156403650451326054144966098730929372328325265486095179550317868444908390515580235667057655689418067179756922700534631666139823697632617741837977796315064268885838147171764797489277176335906390587515150188623408064802975834192275403618394300743666439949980975892577103155500607821928898039863365826817688512097027022094773409658228950010092942047921525683792189498248106765174819981304903773938613973631534932497008324196536716040288556063339746337237554546511986766940803234018326751539805526164341049063678874751367407858051592171460132523991765388793161813597016071957171415402039551385715102741940752916756591879404282383578288247836211074439765254813537822238278694119376260202329372784174739186878426544273025860690113502702779595724925942013630928782856805596307947729913113669196500510961103201690571689857031010238198460989870483027910469515347017540020974349885959303724141561054364618619748301976687233422339518362677842231482884498084979325734676572378716767816708529160036343643281128990868577492135625604064636973239361062227120501215401972714331663036937188449674067028944947974151219001574907226690795562597475252726317775874699422115047254193790502804545128421590399145195230287540626747867946904127932681070616288105455059538988612050462155927431029184090638451153497676672241031176678254245820290252829730166149285876948466400843363422592364686996077555610779608291602886780974977170789311894808289461562551306491511036521352991644196767933155904376719227852491617963910614488856325909495050796304821183714955185987119629077442947957884451406220331266288729315703129692421909213504232783219634127508009125427773504158150833936301068617539250786490795584134429426796066217364097382376178503488986247040663807764542011695934856066190195093026947853441387744459869050379950352503751352667724461311317174731708507275612862241763381084756647503067355075099944350634406476753257497397820490864172794835536665184375166224545861327151211545171749962145172762582667441627319961856064710377556392532365390576029508281037415574168919623740699121949592228015461436244632586029258899942865770383429281226116433968911105384526739904854398223255498852952804257008767448023258775657987544265890280426659263008276759641695869996350670630527955898503800627140342568467485707946538094342815311901274296222978023601691665399481081917469288900178769917019688744519987238677168622837903944679390574148670007522362066507399804305950726933140952987039131534029515502226193792409645561412208537219579846926127671820323135194049436164842159135215285577011564134818319280471599172130797698881348703758531249215758170445786875380546282557850329777136880142009467372221758571867500923647766016682861291460890586906620840366607270108077974526300109120269245619520962768123941436317861884139832310569329927209918782749510288558103062156459863151266083304408636189224055650036278655359014278585671595765144145871722106078251804789796326935921111976745865302028377944766020583679889178650028363458357503589941954315478995211280760577245670390537801340637636240091836135767692207521828493690693297918830573690134301759304745292240324181599491355091658350673511121337019949389155850558906975195164896893627561490993961959123791445583644965966939197082249482095242334310758093031973935764926939822510760240805549371622385178678116674290435658202239324491739732028166457300788757650173503256854112349501536400673374604615063451949763487768321093480206647568726956312775083586119363142758383889443508068484111427552426222867253429632023756326875063983158372565820121379754135517342488932185328502989616000710616632885855167640999262664939565658672899405430079864512721128635024493284794752535464118879441835069849526499841509046936152061454390272894300650797123392953918437153864785580818925094019099388755546588301985167198358899955873893061600010535990041139918659477431244120840589418362524127375197453971772833669666633523781000868001962225916238846084909829652070114300630605692802167659158731425662075821423809505353341164658367065452159244397275821339212700222722525701340997470407001816101381947508606557114406747901706348832206585851665343436529801593614099823404903798557369642020141462602634869414691690953633322342932579234815489966738312192905137553131817506787065556102050250230637235407829546306338554550915986583052823519204917902403729527776390602010222354461037964070048874354227223269500282011567244653038761622966171723459503109947629095169575835037123342237699407757758902447398287642758770025837125227336265013751014665810245624798808195872365659569477483748462490711507322717854726696956495422867422711184998078204710897217828062759391030237061837658561047717241162843485299762779622961438597163689310202252608593662291164723617511731214684347495510312646897306983127064849874578979753615085990821794083657200820769878767105855664229058280279020958198678484306777994597553203694494198445622437979718515769091437053990702035427733630940261486155594151298057591663021083450531056413653115871634588326979520622920115278845828693756893629959471842723190810064494082138468521578500965740199944762445764422496072291057991967781311318854774846351192139193587871506248327339026178100386536951725923731285119764390767903206990939348525745187405828045693829738316116257929330759373657499602637388693922272575988857965989581111386562707720175922354941934282686992220302151923766205495844992097277169546966539817979597799769678934079637477743150136586811660715011471151876442603447132033470734091849106799586843608741811865981838390339904650272839155066993706172562293470245571922729909367912694969949305611964699219093565364252238913608353430110281137225667126899661351890413711149003106730233427410751147463828450041626654480447340101992153846461608339829814066667156542435131542576515989130442487127583667759655127116762839951379199172003767268375766170462098579185582813005049730723702014554419746693393349793968517439321216849238142698091407319302494753582815971216851555213726015247871976358440659259293240069029811445684618632855099184412187160061790273346700234384778091347392440414762628441323293708707766556049031412616121902875740053948894982327868724324228531937445957682561369056527469662079562092629701292329274781741068771357260472343943343491101235814954873393760740292428457645243296478548997616821137348178273875861972163938926110904092370160700777455097974782438239921733988767694687928707405629048893001142385596222580314956208398626212976996961896293614191886043792313558023312156148879079334490333851639617874514069870156626797359175965831721313975403189525090472673252559061623554705465958248410183277106394477099870201730086408888403190882517629015300929125892252309203567973105886222250050519879728342095514181881634526106141253487701425441916380513277513624941927191699693259105899665775575581595125385280413941214239966888422330413468110220758420974702217450414374027171190311402979018112567797544704239177720520803186537091241963243578116752314568350991707515945440379046401122881600850900929335734942272492279655487526737966413140831417147084242890291459931662741495179474631679737329019452614726611399442385531800044526218568981766564735810380551990670128669512153444604206339009950692859826349882675946521545059284368346938505774883846167609863050794826874836497005400861847751433299893048762994058184433433410216216453580788099601147557182392289939336034859351618780003756899931277831118567323065441666922702270986146013486378364555447019570042722827773144191469578730579492454777229230340344521289600331312577542354472199496018005571857484132612378351283865582179110935217218868710438684866362298574071899647875604744169076534725769718614002627040280728977708406109114489869752468315303804769157573118370090015743832848468930180183704752898552821936651206354940367576212296458298945732431092534243176016769085148560701897567094087962074189496357311860508587682428100980614257433528742966131290669378330524765467991468649024542889878902595325156168647604467535273652875678825792313406528910241241488559590496209711230626202946149548756011528072119400688682397150779504423913747408850692986115880526444135899867214576755583202435169960447769361257696712612066587625284278510629434015009021095292279208236454298283145794479552340860835866236362389583030393006592050211846716677124185562070528725079478332555104675642650773776902856344781030159614801100425875925819128046465477649219232605669655818568030243057713956024665421844239682284187872734246008864657878357154616621891171512337461272370700546545172188176439976675624045021340911324143315785236612867968069825104732766634506606206060162047644081258388837145056358446920421397113867554692733102502055609336804784272247513791271315995599117173476004924910003731215601030217118006142539187371129458258969817442902401765851063106677327198199205575296053839773371637599116670172632673415696115983696896130612702618256502284828868994469350559470537859521748578195500739866445305344478642226819766798653736471416810248823661845511413692064818918820671226881005205683810404660246096966991943726679938535677072902796477956371503366814709750125949087536037073733416537446775210210271432926149155748731110069724941529350402981509437810378394312557314061519184156389195482042415445126468319133285159229514794828145392958834079333830731612203079124928478550029364910057602107250628885218392585359859242551865407094137237110181878783664078405915262816514956534229315564520199534582136509347686921119003476412113335892240312759780869416387461062706283502191687443201610963501006226474494200979775836935382503643129906580086559343604646604055348605080289488061098240134325026897465920398055807811362221294547755225687614487036127072127209709885911847761660318898550354586676036870914857693273350401972947405668217248846027287125084847529031531681138062527610068012505694359902498382529937699664206505308034260436613241150825971105519522211848031700932955144374585811865018351341823184254854961926835655765871221604248066779841736245168920621192087535939515776829862990636228764223122274748067619152802901720232802303581819048262918603169290049592135943726473158506157276957775643363382348630163802129257700261006903699045638660810449093495499046658152323549839202590750779731507932037816429742744238904247213040994840915151448173629166149540392261904834025998669255498196627675831893597155702076073723361878722742854667441178361723145235055871485191593401751958503004885930870675042132040795739942995984998271245268895081775158366616247704141464302844448931689803517921572071736169250277867875647830295874944158863161982899082651154161211419184643016605018927862450814698604447407240215218557761157381316358585084913119897420422220968903179611939546177563759173512797141975774208688540423912185854748006399547005870574421344509725246769658439051309944679799067723602070450467979583121896336184954826975199551560083466884420123014207742355141635733182523355250620539348597916249229634534188703273879577200806873691621441960950691267290617612114137026577664397657840996556412738210834245197877081481183056258187003573282521254684441542258126850876152618445168825106244060680522475306183159636045157862661997440471990010534725219837876289439682342527752528854242614073394645298111885192185823696558988577267338204514704337758511298750829808229784092664040381249197568454531040785474432433872241317640694483904761706952740074757049059708670499806741771691500239778943611621971706474604990327122145685776629768872093312181595017044631428589947705987852992473937159649610196401887980368397416420120702113828830566441193643100044219721528023515058188301237249165460499442591276904851543484194147819593420399500365609608407341990410415520224033680915858239988166014928233145271211143720763301089443375551913228432042368782479723899356510614307083657885612217639448384985252765233568147281227646703434479999634196162280489404258130257582262285693668747098575462154928601364639516649891575633380014699263097218308968874514046005419623730636796836412556563988321901349351655551480410117535571285775285929842228240100257200593574654580894418203214882096044299812561462076077713305311914016208349873892678537882617769448189683765605339418221279621581230076448888195227999477051181997942937772668630402601175877477941368737445423395061328207622911344740932459383182240763835554558195781998096738169984758438103667654863877950984837822251005041289005414528023175589132199147870218903032549470868911068712284889454887189296434966350914857954883662680465333175350541005004077438123046181499667639161716670304162507064465249475314655132225217879556987927420342853368856659143038817806197365916392298550006178429411564807328927604575266317555896635536682458695871454186642145201588052799135656187437149003471956439557972411331183877783047145648502749112078416679176055006653705292664002845992933782416802474990611479033363644524695228616009241028896960428227256699516519515534973321720701389055277307894974634180640341891812697884245297195695347129921426745322464081889009546129672017171205434953794583755811100949242421825889304754405176162810886944401099839591040423446093360099974083218667639153762247877175278376283452256521491750228083667299663643910054323922752865741132797165875746951963899006200123096441742360697897644400651524304007434332335077238641266386863529682468508365680797343114815928854361788737026314908411453115723813070323439108829783073169253213012727798436222943116001893892890872804813565634185415084450427996679920941926775641501724973194405120626451261910428445068979548441808937874751057071687339768726324310788177404059483083365278600064512802524859614967939302854780091955019586297168172197717928079332160769284006843656419719071766235699931212169727506236751662160750678179667942106792681425164722288900019585035030872771525756283660373350309214574339208927973155371522908525644961102976893542700798421020416167414731166660210070443090235498943664686208158323729091086488220384264864555052950991753446826771492354771913213251544999625847756989658270784152822023240814358476963871927041598596137918683959156556552639855015742374176161791354041920856790155529754113673952366181598472554270090844854657813888575468009303615859077703690592783660191543122510782293804101282659493716162141084908677558304114693039455121488341335017452613184393537694201387460973028339163553982266738646293593873948683660417182596998680001810356099421325286076130874214570422907102826163416456244132225386740134616971420402317270243293578673995377666052524435903802817324693533118502217916489774803509932794036589110861211225500619762927078443491365784199413008625566174639608041552499092460172596926167912897656110552363070749114388400016698092189918992557814835703191731734231385069705444674234190498933478150878660498464999466685789692689021944661253803725789963802868654175860575039603528161491947533396002591473016697451323574901866234790807921724453939682061250268185057800529232810506547360069826995419115566423787778851196666522073420754881243514409483695100794429440965601924489024107197544418683742324934409641866360867689243253723046415843336454200288023993784076217648941750899281338081416737681571255918553792880048813717201402875304138104556631765013388842557346611196188875669230050952232815059399878161905953554676371516639206975975552074653635090492533218147328431571116742187060592589340734358732838696582184468536132098190621233259133239047118069938341025057795776041525777140413324020732579852001176016214366856140954028108965934196312270240248814810246999925803827525112782726963156894366618975197691549507577814684342056462990584541876307077488952459777965720455765133610865106407834544408384354133242085423778719328733253016474937835039844488174184749918937422271699837662811228931819847051207859781522235700968334056449218203884428578062424732999773126398885626668286026065200230139532221111065912962701457602559831553782060808668241379716692136388882027450309546744021761515231485816352591893132366601358584531566489026139258376338772888675226499090971071643193667230735341428331795532503485790969418952882276060960053251836790953225455468205689344445513555200238105673174535233675405008044572934445724205318387776835606986884891380330057616489814714257763607402767833431877745791596259103894041352812068571047976547444698710782610994624346840515917631568656676966426878663837858577903974103845844587620410853247190292966484689875171799327262612430759753228170937723619339635267509271149799109079736768492696076836140428591617102326023756277695466420606357317947573838561515880866069140129706899800019709067319841097600748897315562638920473185696049238509101154623897726739846436162969881650351824665479757488078063552826004686341098546648516715873330326976461131719579597488245955081049110369232513472340212262933820435401469870971224531093945267390455591272687295207380472271370087488086692039666317379049643047853847781243253919029280134151004879872588055258756771028258853594704150199536701576524722710289180071126947641092521931067133308070768995430069352788299931884614008567717039260285325432221013911843793929533664663092905111577000700291345691233723176215981866840880887838936440503506902597867619409442687494627052596319193166719519640802462429871273073215857782443597278122155573537831449613386662892663434430553517661766039546795970257503130978393190610776719164440144371157293890131741504678672718750682541000906159068842348302629187877064461641062922641022650476805110420775537394430738969351666229580063380843447580590479706601753492735385608315931173271194955960237596809461828722408404658695967341006872758345379679265561675816070689676981782967475801264552394771008723304639794590222420589262792363625204614792478494484604027582312258518327330661178763750160498069196731028911944388177085970459473350348193179665270251106768530305645755578617011968744857644283856105333436055058095425007271746546943445592118135300878035551934289135064522148564663442848859117332113483359253728521100098946643650998341786966896274142664612222168869932183418275866752666546223982958958830815058534963472451623420134759776153773513755622575233408587386758495480456573769740260361275040800173189647789365645849912491954275147069381341549464332895576793115590996452211065795324579125620117587284679576925267247509867677598335325303123805465654006688149693532642028605934944637452590897759763114721523390447989422295207088782066988947094961893015332179335663662531775352534251983761539928872681474235298785065181784339266799708213041824629791221600756886502602696323350711846272289464144078499325861607466178058250789065625421631097086619638374404817984045371505985546722472326308236090525408293961587374485654329974258242575337957862240555854679869372661193847342933266421954032064586334010281304201452656411932016362813911530677872444796904725500402774942886991068162909768749882484256421941331341328682879220168323018081442834789294224332462780172850093522264900692771385600745151453091557199445947741187781430246749147292516994159187286373373686735876986133782655822631268894038010479686896323975050126928723030656007508424344790152265577105582757351731536998025170285767663051659847423506492251936879291181449466840607788309249124063658389869811359068168120553328120552775414099715350379968820256113746050501372772237996663246576758493256252173811462210272896460238201749799895847399934072357818973220781787599679625554292280633125640389050454664189150763958042060553045665543810813268272762211603968327541636053116948026417144279436481076222940966583299774357053177100345636039020490077465230445480605440437538306863161881142522687676591655008144382299784709517560604113437677105042084564175315978777399839723823299769537565946762327274380215490954431715930492463465505993490670922273507413600494931392751289223290399459437619190311234659927484806993516121443498742262634871824733525389990357788843316726142473345073007233551468847849470540222556027190057570680652708759708741841597099808608155687648653707521734400652089310222440961943202211184891597196445307570560372692449294470660315252174966475151227210074507137678577563256576813067204012636273770751882828908987722567577044144609548078007194408811992254657871828008696962243737127050670867114350502185334204194013466909011967547169236922101346604836225895614348658136128270315700080732497157263012973150698329831276870675310301014420581483066893458362660394021517853834598470920799056297490327948721310989029373519670606273775901976342064149347402886440779782208374867464864272418896805105903269347546735184739358558862964438755842124529707111362463386932444728608954179889562143654309748991702431951795124376906051121757327883977370577695901524564508057246492602740701914979667567566509081495262526826454417213705627122764919380202377478771027413222939278443592884787103721242295454293637845141020465736028070463181572609008349454060702773022045145979132897509282622640930697472497452443189281102286684679179424674791012833143098518414046520580871715905775038874608604558152276197968868294215296259229989963595134274217991863932399947507755434860128695407411221311912019482834425536842726210054172052611333030098569654700005729344345287385163247344903794043083192587711344884222069996393894671412253878861875371318629641260744482589531129450939262344113901410203932548361714544046303060340506157340815514804045374145376499036669232428760600376685879953529784606379548289993169553730527173668602725844006311230184192200563334088699579854449237256009578576100827814185975148617855168734268689994162869646619117097510064407377802008956312017962833422595052270971481019172514015122266681224486240903557914130901821294469594661895256870342595377617115430349893284194473710662951562028204665819606485699257784456001979515015938959681515527234605082817906943335237516828573535300165045268252524669454727936171321901002855052403073443585492117768027696582562615968470894556445113519650225217423694619040331833738882717861811823798850313175432297444147565084406085967676931537896469083114552691220098517432996598202460455078623540004678525891365257070120783501875233507935834059434935999583812194648496427613795796427591497105347800045930667733248301766989796497138230829082068575355959200627191495907646559414844005170112710543480496453949050527870743366679329298200820686810182509372477569064833031373468424042952959880948819620795153618304171888577736459090149036389876315005208671757724413578876826546316330802947782526362048078258559192872890251320986944222504310270637477559434720018189082343002646123425387964636450491687416087221601092946851356148932899411905847048417028505154155631742345417314866608647622309270301457302440408879333844473050843345030891039586918441218288762688048177784117875731577061855764206001602284436993022783962533390411943078499600420543593673092003242156955439203935619739979905525678397125658037070086250856761132597298602001170562108616910647245719692896455740243802565547991980212526564131239893778680610625319995904961549421872277969590096696113802701736279938754666369856716317233895011278411598963961965451358279685509183498715817024157294727335386553885441729253585660672888907090734618873034886148911606919174597321657038696604459044405996079907683285606784563486339432671645288433669468690234522149512260167609991007043765682293037486982360836118582199264560276046885281602808192404634753040222160406944778379647624143732993900328460809754406966170918834647745950414783183645562720387572826411812428440682184748890968242052683672353267723240201535223689458188647223359934008709463568795567663163119652657306042560829825137793944558163775965493212874347972192061620131053945678483152179211597331549161315624702921785434993444043951998785414886975040762048813630364273923922966491071789344937872409678453557922826307816911607318553997303185561972216430603286975859941645763943249577957764979384488314306773701334464555435999972444386720152462251865092196674628897511208330836240207755476347210965837783278998060105420488996839474179712880130701546583800232991222553338487073009813197261710470693868832668585032736070603901395004837541724281732608494966985162837498505275799666809916275824479407624708801951731051922785061560484809356609563721063880518674573515193069198712378726072671825448942725975312938168616830817165995347295612172131741167510772796426775125198412413923888231379557143663928072809266250877758434171815712530711406813829305449874613432682623823295966561201395575471254162414780720888420865913034079572467502587284009490333607849080395702357814007753191186117006329366163674727173419675835764163290927794866395071962258599260221074778886302451442403000347497142215940417096610302855761315842064160621466944955932583560388027696221146144644770712936928866397507209235402633030397609690981483361238650262720420710422347701218581260879455718673224072926956990999877238035261578887746255823394751136490225269605239993976695929927979637363736870021949344080276906826344823169435329235605318133041665212475027644626957149743558308592351504613060762468807842694587720762432946271235130779085851284524542088459112438207332329163897454181197626774372547693691089957906304573925122104858383942870782595033735225554860211403904848153208687714619362280781982440015335835558985114066354772992461374062555216802898244891388356100829795199212387144605522359067657009393906349288052054608108319758502869231985058719823982622633582622318191426202963241052766270393996902157358343401683722014186407336937497637448643011562359289379239948823204396343902918948315111652051571479141753270969859109872631778084237918941555500983852340528254287108210608777382832399683892176547824918294785230463668950378185691194472867970618415667176929072354337418927781485264390043896531932352304008879504788971721265295757226536571074371044154042865401025645604536827455408800349656252510058450001042337797475061316494959328013476895106547463923083135532164067114264551228631677941438842716462853069551163518989230376951572270946331960074322924219195676859199558349265739710165074968109340620452285198781215294864429063575619936927397563150900863783845055592300274767745577787255565999184802154600305261636144006074283870489656329128148872907457066243136036147212387864775677191109010923085063308340211710385399346512365664217593832663707753942446929120362065287058618291412591564050753498410555901123182822915357498740206218359463609866165712472934829188797858018036843352137015940593604797319194129519770851416271791719161680011752089989764631582815292363694738560745305088432145795788957766334789288761445981626639102739253169713104330494285708250538641352432371852280488975485896745973759505426199307503231872288017896594591398631624363070073150639810180438093529454784942634896148010842948561304109933416393855124784751254389246227160817969092101432610461602393737922692509291955965763587841222351383668807112920571346061614323582688667285106149687860794682928903987201242455639000487828401622806422393054392663429821994393107591390904893926056911372811940716896534093624439364516073447078260794249092980401149235064114139380746344301536793489043790835054727899000915501181374382253763973238626166454018205034112403510808589294073461807221945858605786839631701777174778275142019876459028292680440108834730005527726581476128669932588634665692006133950778369772906176582950730809884252274454033470681465377350594535529572566246041321617021668721060000606475407843192542442466897158730595418869160879234626286327832430274659276007990880714737522750279326520340978384737151855680316245407661252547814480522433828471521442392323818537209789601491022639378653775469628448439261828994286508140495837691915294821073459124486698481989974012998872335924214197716728450015643711565399381740751717897732441889213982789484451712475894771527850460432300634894435977963278343854843167421066621073010754747959042874235790639687575805682596474204912139644290532755782699492119207907303273442149573162510131973263661348482784920169225889141776987907779241519262757865867855160213296300523154651400218790517329390147045676749187321622230745512334244311039038567179669106866976396956307721655109592215809615318391117126934950064531902397573944795575708617390078324360409810543484481628061848253668575954146480699798192617392143413653357468254134356079850126011116189898049211729452181999984894572748120457842953491518070452251654731778284492478290430528136796298575186865441489662265617744900481294592645893765894071352616896826970802115706934635033823305272203354941392617409207001665743416884798807293010804237812144228149880049094727504168422967243811786658339213825231294144346794337277145182152633918064231235923276434212443033824351460532505725015995893721644810510088236777924343801151420999093317455281895777825682426584679667713755644761822836653803192077826691707530684285420983143700224719725243538380457116941684501808251528499039385528052864105966984354042416499507090420348307252278781060403455014286458531002128527380719506209459452037327772821142435118941238507314789069488310173512048720017501970576023084933626617283057104958178590824970495569887083716825478038672462822896454022242661969689912066919872295344084437075463646630016005427728205408760873208665564978740913151839019726982723959191163660381836196587840641082115038730053083651067872839099601688095178425407782011372257836559404809552573107660533188699179379849961674264454397627561341446058920550140181740114529000006364104194452059877766307592086489311452594090548428015178665579972329249304117045459084275178021461061497115817241090922447203322481986270025334604725184924049103203019459762475021645232099139653607722999123054010363861784061878130450149458298749246210458222651532885541521216499460854613306088826561289029702299533668634461427797407308825454073176653773384969596073661438091657577165821486438905981440253587854234735208977162130772922358937734808170161655017362105172307134077645194375168472418449306735111816122935718425239448460763268426051448546600551120391401521158440651345100536539049456553851953996094923662429019635800985045599961084596679577930377971916423188075732389427625536828730171768516155474181275611353574832375666128254179037982198291601077958842699109690398143020128582348018539549359071982965464577638022192108999952567578877830465448468119204975770261069186279858733428865911726660612941290809502444925123228851702031181066346294812937228884671841219943231799904476519489608018138712295680909888899697329752921091722393116368974612881265034479746212345143834930998108572180640381868647599763765390148615294979569808755132149632717746260838459212037262958877106982575214329715375281052616636636859660970500463804346970131689536001335622238211867303935582995975917453696356516351645605169637410905137982660992773046965479211980482166571229491848416516974816746808493740343906698398017064895474034644965969924036006488996664816595536180040417850546063907337804106039160705185548393223427810920391671001669889729736926302328989138525121582227493565566466864348089575792600207103830307509887587798244694322927102711915669507530906993617665989904550213706485807637311261254481906197878239901765470367322535629225144506594914265445356391311860936834301793825552365391265436458485410042945499321693202819561837654028881822983034650724237206436693375401424325142789075525013054548852292669894175188974265062399982070893004454364799704490106715059548530379339962276233251352600427113250838522710853454291866972652003067483363137594929704976874215206243015418249369443389486285866136148967483246244505279202765488778818767870734703756027206565306992890804807595183953189922790830045848948756565648347039660812550060068814634399537353384027798100305026444382919112223376232153978668706770328544894287269638372201134134029930884660495474484201187199537654088990005355755197922691468570703005749225529198880766171561434667414117266545451234161748337063838744194754782326020401024178231809275782379202511592173400012180365912627483957681741931079472386438066766274959098624570816816456633185259397303550633345146867018156006279410561087558677694392056473863622216951126858035133830984497183824666351042777629906634752572208019468368332999105314724149591172690193587588256240834765171215732751249636025761996910066665568526719069087583934210199646085887189336642267215781361987524080632648484189241366809305560729576327612721839894940706831828634716112636067553373114824318711548347613221339682088035387282411758915604727247688137620909695267717149272735201145675181861027529580309141632051933812752229970933339397679513415321860547820860469079883245245822498996679291531527675181802134294856285541239930172987152778094948032349576252572010142886585490775527001950374384576546689281616557502132050402244949848335915663307978813526961194756502663159971305125769430678410311804775618654821745214852151024399178759742990061808297734100455430216493905072220263904381819632148593194188309686553890190839692973679621709076345306154719878889492381048241097149374825797744949331711739856126192815248999455058877568973867744734106852405081233238131896961635193889548101026888105820100984267805869473506321021363174127719576495830901743669514814721423067110254389491598988900431166011914157656872574263478566572029622752004848628803586704479751733079747836509156354679322315312108105600813228784261444316460855404619084317374741303772265759069006278701876566340415203058387793324108845234343337162184634963008714958938542265127784108378729514450081913813308247244994161581585678947772320981897279946996121166688529940151856965846497779582547195031603551003964181014270286382764504227377856091934554664478768499469348978996827321229261049821968386554060914824574864616522726228392965911081369328419770333158704859404537474501139727827104571563439736656614853337408751046422578873632512499398504531538142975230264281541393471843981665575671897677820961433795108191874261385086589024874898905328323783220877035573567120494315810022152861509489206676740780321632076047666182023713882489607133570009728714075417977276130007565786583567340447575783786280219454076179859946613415932503974511329228181470433224512629084145874926020792326557618483345802143256990428766303841325580760793216439151222341633831550450645546893321201844330577958895801080950056075390659660206231259474526355038904741225099846882471508020903383266084353929870764855684354466711344738134716346501345694797370532518477231565405500619682073065160850560988779729361386354922671278046276563031591923854520828781620139218923681065983266196111543335098366417617791228301813506409182715150837119810514512123257512484329727717348460353936066898187974101196331466404803369610696698909209560808503998707334908271171744740461407996675280382655568857247935121736804744480538564709833553219430093176479735318909630411527340187808018618709720974555857322892061885185120072183497442213105573151096499200849290442301167281798002033152438638462320359863390868699627478273973732877942370141430853573322853627321472069715389421895893983698370437107611110918870858555284615875651567826241874906097799905085000209387044451981022168606032598514534845958253336858210662351363597542486356024786734761194580881020709833523406696995988460459703989785135529208029736321472443663733838548040186815597240395051905133660198576591759646278162668220321373458258096902829488560983453485782038264712323973151149179391845192529687874955446205497876393831941034092778721617054393700202799939130790560485730415852063376451309069703534421218134249405814416064311872773862666321817407642101415704274704886590032389058428116250563645550640003572994101342872520003087070972078811013475572352906782592021957202689296537516464219742983719650508649459674708687228063313920956740631625778220682245231918607806553523311933091254802700017687194575917331052513232014174724266949474157355427596453790850602953470486136899047083756023614939996609101780685456040662196803583617661158591689122461351009852359832038297775834232797611837681242826688743144860804370856145232890008656462020080472989050226192752049716290539249700823808714065197924453106846200239926633314930177393669871401102109648883334710301990519865305353189284944574525944734711673588856751729635230073864328158333416977276966714594181871533022193395106498722433939711985902773564188486836891245695065660073453929104059093319832442928148184534436855092315067747339777582656881331582259681779389125932213088866068112322256597989779439564818048665575851607967164728356509015421365369760805633105520715824711173627060327589896203997967965475174270819495158746272926361711827988929354588804111397631162977755448537096077666545526916307324831606478531093768077964789694351738073317020287786906582945114914104507035630907210291649477363600977542332409686774539503430882312764745754734588189467155347144710694400045087547915847004201236444623464428017561721548700336240280189604254694925185791570693177465822892295237774772559915211378632794398530910592986634210572390371067764346228304502541516702599065348961968089309080361878284086556250169106414968603334293581408201603149987489554134912043912045730270099091860326126267216096001688025746143230542543746501626670155480643923250298847533089889826203061377034231096835529966972128073405101549625835256010067970041206046683035369080038809990219679911003225968064811053122376213156077378029111617788112127872774611221367769158659158669176477613845131062092264098578813440210159169570071074095580784186800005591873175980304164071839610079268186198446276943285004913989111165123665257853247631940169234208437108913334979637745076303952843459981964807016295131079522838174144410808109006788358772867453323940470634271937495556854459296720119828804801623707424748489687633165533699798364881163198942677181065174766757641845837443860634737274131959548627209765671712287952354758798465803511984634539770524120497899634377300765762891605810673768798681472407402628666517336328802180440924788085537018979542522459672473401106247308064616268583578867076885824190804736369950735270719722685657831374825874492181333913925758222862875335306082897501668541351795871897704579066405517653502776645470791887428748041627065256514934160514480504214530521114428347199406430375270402137142069635486304280042144333933171312714362553404979595778900330911695716692682747460345146737973659327133302942485170035937926726531036282606452181998885870879865574986854159860924251072214455189040517916427547184623285588662696629037367756586018807484145894464720958511049119133053430362390294369199132415699480240933604645962780889854800680884756209755468181844182667856601441687254834217849777927508055979098156167425916161995397020938290025885906925000707366012610930549126542710694913681537743901342119545263128665204415208576892125121611924487678573070629566237324359722760469646907280633046370099257459139769969752931568210185277333237324286847989720429674640565923864721037584021521054166596357726738859748596413088369679759602767442382110757374341257003490016171523587213293957017167309370105030441240411490266803793626320524809536400609000861380264795272315376857033808332388197494988551548864610250872667436619217683151123334060693729505625643864404214760800615025092886287889964518108028628099544887193365542681679096022731114994291627653407591678667263370441674835861638955397264870802901134947398025680158910383956063232334509071138555729047318960277008535591579054044106098722251578306752157102139593020112354227899991989989203208403298981464664017784376609141255011516507645273806089817439718863810104813773976628999190774151733152258871746080055388759187310710631989311536370968331359270310795136220137674805022033378384724066746035826099936979704063058689857843680428115691945073782226700910707826176947550732407209274614483200360382466807041349831322967622122588119535381486887828880832044779092644858789421661848004212430244985954596569425202515837049665012299915176892113735836596233263587191302335224722608894106768786853879714279210755888712243821349955582221171399895965773900945913775958035411872028580116636781498464166804164498405405400762746446537238624118098790499156286236985489781440388685919075547984748478774555263184538335039753333634853067300468986642410094916267572928872534368032404080547751456043750270881442803545478469624751603400652814716572581133206789996873035590355790304375811338626225252412607309289293478935950827959405007617507935668090453960905154291055762901324605685729998384711205032910243723617894498200744003167430920762095217267362741287391907955744619294158111328622378896376809473012289425527944918407103230796074130635648024206917298093472543423459126240007115527763428036677616845288533968409478724533601024765548697828095737751035607062110303363122396995781035435305491407731535995433321666686013812732864634813851806216185236810662277132752584421048706585293070530699430691849158096283712619851159695359387188156948760453683319321618388949101598848094038861588127124393717358741170976590029776198137759226096089597574472427238132777072419167486550854851281582687247203884173159777980563194589142930346802694983009344531839190997196884951587929760186067235107097118767172656380208513709543025923000974495334021092056048863869799626429041502935201634498433952173341944306007743656586252877693222967685365271853933839852082142870586001478648765792586922947612129106191494847151883422299100342744792855390160291219315029722590049209821154389415391169881993618209588658600975871279612238935456790615281863536565439173381973910318798535791420520467731907717204887577017419014848293170677973070624637374355377397471839899787964516133258277196749930912913581816881195656118400220323171974617399820859272053220631649283080065326533887004647840014375727783132484777288220380824386106471392543188884843610915678101488958294109978530111531301489323841095567138158440438110135417826292617994851048150016425881079044947548099846821384059614412458149771943995433941973746220845523746253329892085918539469193219974611736394594943293681524017084516366726315225689447547411784955890032781820208195005689841107887091070121662269083560575856244568330949897461171962671839619438580291537648739298534473797008704524446627825067554851827634335359787955217328309860102904308350057993567357627688649206023501710504345600411170211267907112982720685100413812672318230447258490608817136405717274607091967573254137213575536390582943814987708246498924964604819426862094357645663992947969330988568464239836289313983038510112990426840753623694732388465009618589481873314786648361257425912122298439835770481313648505116253124453134738426595060818578485862717702218372560438674651516043192780130249482383820168603178358923175368563663533557937797690154874411524227126544957223365926448865422643972205845305846504918006434310227306036525107829927289843450400054343130040190863801428288563242621115871111374276766538452320043235173865222667870201815030345204058802221895613348190739855837698296271320320725975712603782421055711039307945330104528720198931072492257308615466081668532929289032172894003173140593045753686286121288434592040297351206350501181618656555238590589822452951974640932181608121063994680756902334011891935207800337361036617627465599337726399687539870127431152005026091617406163022960451232249172671701226073323726759246064680771226945487639648942407971847174562016843062354381924082863972013542544843552992728377381157755380612948641032620617461064361935016605720658371959433592595088496552179176624735096479032496306378626651733622285612080683558675900568295151140568953489561152235356259817631061577521038245475505162068372102301552120368143168579555697674303855157472858811473601186384310545906238904527410305425741266612860168930444081924630281505043099862464750601484096807611563870607099176189453208413359769387181831892360280978168150782062664870093722689851083142310075876131629827008582587551705350056421799899367620463383555157693890919129003081279911552966830200636088153602119973803383355573963125419175472350108006619011656971140388192550733772848727465084608571061521874283921648562922874537288368406369120637297193382500250136784413707897483699797650205412282712526746646860226090840811746426486582568927701743924724752471760983243812045583558800840980766511804587093367383787814865440469587087855517643925636308046665257836241687733158720101220674553644928199191989618500398506134860306006796615919776356857203607937715249516834313359480352026520051086384079048697909724969914859017048041369705345539397881772149858864978794894975441817544121689563849992717937973727364831479339220090093023482301395855555452348049000181774365950171464110842075646279955065554172360465920623484437791984052036416754983819205536381722718662888011581844823780076157554058745918141371879631346539899448867616424087310126657114009165198075105549343262485549538838891981854109877658526355220874946002952892505756543181571100509941726689656217533729664777686167184289269416529677823785917328326702590903812735781519874843171780796373650924199099803266476963437236169701836729633287405772887232727764946142131429095027278082681022582614660386124610824058415972258213448922445573185315497952424903026672286375573861835279581882947341206636856086235004133159172303117314833867191508328183635269988120040253805055051797861143454236513467279215793965544478139426922641581040450434229483603212425955651325657971531124568276736403611168535799830371867887017246645087015136114939353932889041524361609399060645278740350041118530962850489626052340893230980844995886874270379255353391046765819835080456021918151875443801042434754337936887096253574470566859734809826795708221952565132349527222842545944180062617268438199289391417598581304382828382221456690031669608761639563179319849967879745198555028106137983886516233060822718915736048580655932299342147590980374770148211615570833231253139567433529004036003346346089146095565178326113808803582215875942970795859039761826463318087292889973658694079946729101506397214257454793711979822291653261539948700133897362772293206499102533269221866580066687704550070025288747157787433249575297358658302177418519690648462809238127848128698512511207703735743429510460835453661827643920570979000603564451001825285337796893756920706737751198455984773579383382436858932613823036965647952911515241151731001065501048689016118463006732095269320735952235306372592790683071446295444366418575205188820532878880089635139143297476328918532495755539276298368709922386346660977320361162314433367176622744412017727147582799443437311421917498949101356688253554359919104906873914606716439036054838522115924357293088339032808286999454908089232732600613055669345915873578915804278282181573287551558517741332070399966401577668915871874805772703152073347419245927162409823146466686730511235615362700174219484525766444552320883475693998967915321493087017704464565165343405019801236578617052063099776971290738923211012116885627554416512170053062604818705788134443612987137091154846777696012049367917934996309246507355329463100038760467746363623711939011868925408558241234380380462706213106145671599052374168232588991808369958973323307167990166202472365277187435635411242883473016665827313857224538557016956398108846577558412126658461255476558304386451614893954268850087677466330898232530537715657356567531073157182934093648589868928930268176047079180073351410436984953670461510940923965041830221054144848340246923085671292090535714649498453094168085699692731756243354524240615482016968664017761624885982478116847958674796599839234770756072422979251292696725230082713542284408878164176528051432336250987419746227632257983351024951989902740486666162879363172208036494149518109937456806728639398874077835180712643921528988202204107059768136026518253660731098518939225741550011705849108283515702874480615177244301247350184117848123140297451925454274760616636503988041389495162279762030922986457394385842055083353475938011297954316995495398896571618124288040523958518354628090247228514502200141031106292373122847572555856882510064437372291103078501430744252692335991806114261652822940608248054267586195679881444623182039452416851758452955245348841798391192113052392221523498776077273954245686714196879680512752252722046656716318467866640547548374327610681095072433624705991178855795234071425587325022901872496623164076463921264262565191017336390740691187404406811096823650542641495778964473605166836553815500819501900904422457671796727651596644169722332063614561632968054713266170443138567147811890193296217086625776195106306930417560544492870110004833055085384939974241069477746993189151255652345806688968242675961788337919743713944440108522965917138138682616459857673861660647209498098571688547809868372099197376440381725139439546031119595908677794919981700724838710829834558749745216288716301496702557776533971896726058012750096087595893908377765681729028163751462919905692113947958313723917669541784167765627606680743075865778342436775642104642640014248828859869137426822074106415200718734110397215380149365280630483828017156689072407977103690274608329162047849679414890478881127645905056414977218565460218622761999192288096689967507622036132101249342696960169572957548345822874214638759179852636150553790013145778277333715795960482617908939903516857079222350297141568989127749031536379865784336779453401330301002687750619422447752353844250526605464558602118988327616542306239155009316955428103697883108072758635103978994332551720950595220093003707605198092236270631077382803166970711789518852256118929462995866112452457055648578150892150099645746500445718758800708046290399779150958062658621712750071956410308985105541942170327484641778991130002360211137070255557063097089354303998494537718831720739558498861662484565609832251332365676773646665441923497528444559099848164561192112745905464343014716025759835604970204180434521271854981498120413936058917974877274159756996759575092894870172756417263297841434552785329720795894613699869867702254546582392944401234553677690310340586257017509755520618716107847011994989686295587848078914416957531534552238538274511073573768246823670252657330833226642241826860860948358434064255822748240488585637216361897924248319208551962867685003690153560699207801167225217192442178484000831527315544633950390220817598258120898522346776795757609887070676600400638730206481087005668075304850186315131199831820359440484198375489823561389895404324871567916991591803343735783486396568511202647703258739892699315377452753046165988922146129962440557305084873691354531664698110074448024129157802883913844146205600004596158464337490312741426812066919403152871605554834650843825503842108379242473416218751110141519235163536643171405067453372633315151857197211650389190157995610050605075163255207154592554042135963994175000870980971093783784028114365993682852761981688690998840139766758318021441622086092431335196196461762096340466656382920584308337655089254439567280443449602953409934678733517982627937138328470956943130938381776326478938327505108578561852766007356584170961417838305333322428530747478034118183172132193668894728778187449468242713302781803710259282411056226730080013027367936688199228861885596581367172251920665942306511590363491941140939189536623339420976914509629379792428363793395098754889932724886205306970650207712938595112746775297207197444685130880258624670162176482954313794331550329661644894797879363698916404679191837565352257225508776624569693242836560629931673020208170066167985471291334243329081230187724439287290106956108006584570662410581364120013541447110089273422415903198133654691931926080078003705415976917551532605956194952993091153694050235594526320692546604045750154487214276052022772363494433089426032148835620736408062526999988701830338850549446754128176232321071743698052114329369810585635618668463243437420359953308857756591921747021945124541820521131751415908987588089453650160982821055000478351885099673494067010339759983089401801572867728294403843327286979892950890049100615358901551530402487143505999566677925433520839337173515846018276574365304293200836675457482178622609021810844041600339237185236505773343537723605693589404214489421458457544739382118853051228376570535358211388216583890160237909088164309336919550517210996329004063614651035564138650727815517880548080070015260005171467494651759787518430814035633192474740719269664710254941787819780885366213509905903714083521636191038615996576060670589508507867879464531378451128656652041499195497493198800802038787628236916344106369840161633961417030527796130006349132017960338277760248749355097112025734012948817896041764889871630656707906556026239287216267009227412970678262104560285009932521285804470297467654504800292560395049637940214151029638914409822119540913863353078501646896700149882682997248053728438895847846494712109160995635262943347007471861114673770570434864244306160227164348628235187440994538769113244174721914129687204546944582513145125850156042823126538350783690909114957503337474598467764548871020954055346422798252333125314961680943207867012586119946220009467033417058276900455427043530313100723211001759083094404764698436847060133770894989539147656296672860936926914071101654826940351818918700917944970129824170128436915905533091654970914245905628183317629825804089896147257777792727782067190232359374470520714029167692452773166248341884076329233831240156784954216958693018105063652028327090115425326569686792219767038600383176669262332118605353116763478184400630545635040507281585862434569811538492062371337792243923239790081972930118408012657489211615615290320079494470708363566639736705073742945804593819534587434979041698182620381105949129275470689189898553863798241251016218427136254338582747005105014528634829518257297107283889336060888184095413868334085579585379196736620890125993386658291080518581741994235972704193142805913152959677754078068003581672340489607312751993199373193696925854411192511644491151524372078427385433366376073241901549723320837002051514461940115994213988744193653790603887134406182510320655562262277162267819481525972887454458833146500372671426983162471354570073659349250554495032972172739149266647104050796621400949319907346906699819778819497348669070757488124571758130316401797590954468816149555003875902867097562036601323168065145217011169408152163697211183518566463307128385100999379367893216495415079000027917061834837055384772751841619054602785814385565299872102569811674237291912393675418477715909793231862325186164006676632946538921562789405561821673402332906956663582212045043954008294925026321215186696317601169442278997884754893856566003776488450468965782198441971887392284908706402278506865465986839022601455478569735980356567087089208481837053982656614545434840646852025124301279574765201333012669468532787794529291150474576300003688391086490419512651945687338014412886547534982043106527814828563970365915733255179670382357844416708795276042486551146128561340448501316018802699398133245204835700899738273598384774677361598368339334017294700843738546571771803202388382833083398487095303383945120537378692894436343854516897230358920077157771194036456285787548355723954607024317802053394977708628594856466140861587040490482687967230358631585943560638044569225281902701966278327592262769368050825320371882389617495627388040954607995216205983710509043799752580431997514164616004051984546269248491769103663616282063764840419803069273662958119585054179067617144231917539564088404540185833260622507274369628880329466311899276421194582900707952961559831108460397203980675838471488856351949144170748927416461697156751101844697936808511528727333575208764245695227374212666884266070740624632848356155295558690592697276174173628544463110299872475178837591834132312649258353887599621417477178722808327455181099123221519149120513437530275218746518819367562904279824389410718336405361463385775800834996146321810152999906426650553986131640815207739170449251177953920438122613483940305531436449495620125927987145544080436442524357092821543320541796872845453553418347551605510278476482465811213404529538381894194689239509593500040934558263777177108041708624021471002524129098610565324670738716435869572845514196592043936726996249244356639216990019957921160254592506444560285942240999628850851948866021364783474394168029263985274078150445065704873913748984525349739152153949664374068942675048575035868400011606335576784432713626613254047005939787848649376325604024934587856689066987263558187146820137355681484136848935335568726649673165183803389385263831375520531074222606476093240381519022366173041271788655736499883748340664673734925286315330161578066728936394938964056577255668894472876795920927655847071264171097558372455916366423447767943492864192058251469831873970767221198256241764987533888789828557128148750907332489961336885560032201348650942113624420292820089956752841310661680419369983695994318530295270152902191394344252503033231684029422557356567972916940430630275614950213009435957391036451030135827190049565669681981390085924528909166924618829480086550922899965381020166530426625943377990769756769408734623592299855475078096546425783391994494405438575231942428408652674135386834528487847469551095518307964074130284142168543225898410384081214085203530488411341238546422855137434965319401577704580368201861441586471787266234427634125840672629436222989777769879432086928423922948457771573569662265752322730198341168588431343752432363719483848123374329450090196874807367134610031936218835613440749441689926334452539946047255467733524028187979524910684928563669903366331395563652109175453114611029976179115378902289356891167111788678411593922867381992636220681499444919444639492352546781551215271164378428666458315506832719445527810758608964643654553579547576134547454869327265792688959294771037704001731725502341202505681955844018530055478654101086661018335747465544194462945890872782024368919492134714837403974097086922389922513496050355752063207049242735498101606196447907007603447289526629510967242809672670433920667589341228102824065038958158924954196688671622526832110767719600350559128142403811250804997069462627565976008304826318501183945542936274559116504930760219451768788225070248136777911815184660731009864567772178102960822368578554128234425566220836198315687748710432039628097264518037568880892197337909059299830461089589497710924894738105678943029065649954385850914437813654695450062878825923492097217020807327218010311828649675557213334659386483834906980307782373825828124112769516481360060493169209206529819189603609760187233270642430145349924224890600770649916952613568922943701452908803685624544355102565658258089699607429764937940803218562251494997632013241214996444406959922588981190694862919113909465483126978027254629678929340050882976366457072182146552960432222861741482848695886550440541352995192194553211336942199217702246935453283725939645096376667477064407926368601397024039784774300682892179991348286221056149649850734392263410936499704691610507446511136648723678744272200637705245551237559335962856398319649974237117719696461842536985958143888271154256053421136615473273848663341993138204738370625602429603895092519846087305038306192475516869517733465160050335032438471724574123568503613652564505238156297882678493654912684332297155204764252005824529187443230554147278008740598183476944866562929942043616512245470526418182357899231630102832047804859992403551638731217068517428179608502433778348133078922668126595729444320464849854460695900640617822542882753968496759169397361035579014313792973021671226769011244926275665844268826212323236043106687899371844808767131094188296267969643960097343432691460187009298255308266880638530885897363190414046113429533093035657565992308390045216703067976607888233988373606343812895109956387079180049083711050955512324807613349517558481781884118325788658923666302034775419833697224703775841927568384145113374720362755436726934206189513116618241174690364131936258196563213912613831749413967601420944539247486071941370277563986090934047439157443026528675887402759888838846854941713081169933500758230240949231230437796963000011399132834527573009828223005907729800219254153631771919079987191654882135313407735097449997063414771870778673941056006283004525794212042578220344334554417909515299249224919003219862151345209576220900498255216042072842705423043821897333448140008488614050599086218989341382683547840271782500097570581723165003706239094232116178226188974453647552129468461594347325077444794853726182792971018352943800014197803241782183226403408396317788306883435240260761071705559974773790111039756110928099229871772202528142928491545295346013865769414947387020373249302020980940949116691597585700456042011339277050393776984659028793511885482037360009416042652091747919168045083701171164530980207297421662761018347065579018426533789574229694839110898302595003835720521479254918003618055229023203148028098378187073622878832766928668145261690805679863724224997262000242248920529620580014128506088677731068611373317090673081855660682136560467898021605668158785547125876583117069159857842452995504555786705893070360368633791875173057108032916609093741779527250628859079271636672424475638532756993233982482938106255491128674976925680850573538391000998932510397122699435732774413026416207609259884239297584879631561219729739920055197083124875066348554053484507437004558949515733358073457954993662845186897105013919599692372946723957639525062970094990246127065376142548521267961670587409770332128760883642586692541691440180354137811767689293673354440444346910259986297935927506158710246797387646145613802330574913984136428380551796391296285624363107710328796913009636598333215819251447060037586055491034788660724100837932948706970026531216327696613082776467908256498871062315704226528635483452111898851534184562934375789327045035069817130229551129659365095181172480214605682660342035286379934001001905710228817370422615678987807953081844156199177844692043252427882624718503447181698700864892584675181851748245812736575245831560208541944557644699358684426488686903339676101795695937330730509175597104851603951423393703728483786854746096481710956421465739774581579168257888378773592152629752951656949337822146807881808285076277529934015595841876565129419737586386973133809007087767657442536434001229840214866402050099790759583778443505352437885089335438360005820542453052034806104332733242779979002244585057071622412388106865598261687387856743749642665319849972306520644104615386990133089495243898395713801795908461056458936482518505315633243024981710289890702240656478022093143685188120923790351392320009285972204435775642376855322538201334512534059388182418311606151194535897706125292467767138545856070396085591854988754420392405239982551077076766173263572807306040702324813006257842331581596842928820607314058003162748294016539169222508402308529006329732963049283901414240225086022917453068436278086090363297383223605296500941124700137063205965469472769179854054067368359582039085002387384948508593237140021858645879003185522865749565566395343195826635717196069207037487752974149988389463484133191515921097525056472066234954343614421435965899637823281394012045306971071970592591216188019198345797843138093869778445897084368921163089733995006881077891300267698572315299796889415619957123547069279757784097103972510830372423145406374175059486207619890108678310674807800580950218807005920613185346950200875535719446016971966697882027303928710574411360000517066189333239741366003580311766982759009998136506218235459038304460179543581639761792740246770437207547119141533426855426489873219432199467670942349324587991535195934191263032848949008653832988191060366034723057610960171717776988763798380210544476541596459765954916621040785284696863534796289685163569154136202797991982731685924722388798109980885726864324384481082279034014128800380627766805384321889383789560197583378649302947335597064673725995090042314515390136020334078418427457160055698231184311819749862993359342118989937993633268155070972057130198306879274045750832579034450134052562377944300297379414126808807523887594173364086430585714048368267903126699978858291139757438474451029066505758228829397501024748418476239577466222779959007498529883174222321101323720517178807021173653092573005681868220938026128164799809841851845684012395341311362159549778238362476604747129764029746852928158148152649653189807917448043029874901243873584657454028324735270228753781901416961413780977295221869629315271211694785436690835042518529699258510850147562208118842132166484910803870183813414385659991215623748317619342410511272130120580094796839987615254013682215048348901190291321704351117865261881127558178099281745992551948555347287912129251911018990014164757926177524737311280238487180951984197706791030432791327100858169426882470810273411238822169753841146480029667312017034224043855776997876737770353893271290593827295694741700252032056265489027354428033142421895997131469683491781908928968588744108920021429806529799683055824467431178060650091314693536401510008100455703213845674805140562825403775078958005333234514488179498822764453893971749870190737601890728882025737075270027599547984284629684176848934902961621910778738020101433435094948343936208637517868293682920204815767338088130678421702028877439380732742513435233318483069168949292475856467353908348067013081329538324113227094518487913726012535701819367394176460264801695374215283780489802930003068347812606275025873668468549173244686889300519210535141417368382745134241741889252834310345290951288492764494753742710127750517040883880446818353728034255862306338448500237316923900898123480109337129881388683834639288703911235105708076038994668755521187687059837640582396889547243943321084788135021995555932141011012410945777402417469514943862095583133131207402172284088827876937159823804888003481092671779563138145564358062209246891008588500620753112718276389173083526608915863941265319818420729740843040388097809721374091416239560722425480293712115171848345632422960274845919240730593642487862685013868827410887871858825996403793561447752575090395352035819796311454793010119120247318281474438715582897032181433368103203018391675771773389946549914606829082492848900055629179454517028775972527880179498158889267454477556552808805097056062953796332360181610343848280129947325683180592102206233219781636544073552302983912995236141941082469890424404841986081751598038827165336788629412394061601783158026614717933173274654653034173640584685825162728538810178063329138423909238736264617668893599853147326377352622934590401854215487478921583324720900838681815344240040019246603835220226376104574184385699757301687899429322531502690629149060891250695021237958949336161505785555654295546557492382669557806298193810209271754461060255421330632965557448808994796176865364222558026791254114673429239836134850339577218314782569173193081631158298066239291691942891397850124877631202820979544506409738053796370291513742805413868332882941403468315368545480924170424653704703396361893912652572415585069524538814337676931125195151852815439006327659301887690804973152738805856876576680214691997847820718638178986048330317158231245777858155396138796983825284702173122713974538321703490068195702884287231497457717586595320561615985197339776953737787910909442221630411800826740019910007189928799455797245565996098502035783855576477487477440611104713442116947292153711469818880881625534958846998174945043791762890483500330671255880111202317368027357832287009029556329087721842742866318508460016181390394993011419264202527524600271559504434281452226491018210432821722161774627054241756791997597272397032214057285647702551427619283826391938156600392834245424810985154981025052857261327863728727787766736278916413051481530956216378427550224378255680036858526502997396290507388227029409765237526927825502617159048122990395117270898277975282966945227777048036089734654171876445695722244642636600047827234328460442773990623582101963618376700636769436439271998184045860752697834959762456794945030192965085992442502272452669782599232454965033338976785579320720748804322341674639364156972375774433020147657784129591116061838200659264698918499951626087569829214646474566073908740415448170878216962075366900488118495325355671168779425294559062186234760061294442057807549410374269642156547202489026073260006841250555528404041478569165486913085283364434783448890522944179436912377343175680602492319580247008451517782013478706131822694156523758680924335341935069929511266220679197912572666834334759040935417493808842879872605218430843324797192436094131864530136577852102934728425538571393611364208719410155422241120608725354298694280007983794631885996455107933438017130975010862247000437296415799581726162565321184432739653826392191310014987491163040617438860989901758489219605854242758301253710531680119776766808094840540955792321826030965288632341413818524151789968499234234692859765868609531126920264277489310486834691489634535530732193615327699835406791758608970238402923925061915230745165374093227115425522763646763442176674481708535012280886046875299684281393135902031048064474025128825342598392853644756802036821063992452100040377474604715053313589765064348615904029953289385769784523972242269327888885112284049775100999907666956823251922882866595849531833908437761904654162363572701535794568874658123298878493271607830680938442051922957058044357933419835159406163096702678025263797878306189717589613959698589979594183891371802446642453446082224894279984642039685901074935952648861468561590814317610272618908065414541755740932799207745082338757835588523027599802817395276353757446969790870863861016523582946076730267738457727631230027002223330593094521469118338162117019176211073302057153407010308238359436219518985389217152198139838992595927398748097264646214883404778855589110610787874770757896471363152482614501356724297939998014721293308365948583120521852952130467582787070262257763229662134891268049997036407256284586322936666970618763479201868769675548626186352405288930560251563058655538710058345738513883408815844614947966600190905765573108129297803277776087308001224501813325083675546974812222873813115408302575870599640912756081095854586973340013707182598512655712051030376880727939877444895396240004327645730523110343625546756994204574999908328804679326917566979126945765725026029636784109329954236569517634780959844861385985949980929468733698293067651953565991506005873046098078238275457201701107466103711806825737254147892249989159900958307517756879790724639761423860852628236715316674106394174122006866033777559591167960074137817353526861353236271809280978122348089942261813787908353076793367893166138670419104204888541830036249162351878376886771764444538885845954692104360452863123722796648433364596924612311978344446897348149745187422119732489421722418572768593607833155871292430155263901041468715351648976508257000558378249177090019525946582615640236525952633793987974458717070508033760473558860925969071616488586493499391493033682876268596387860324622923146784223960324611064435994653348491904171564048808019712888068739459463209383805975823948835712531525041909368040153877440372920639855990898244884097787353755440440819438224078269553470689725702544407684813624469223907318426956546694361598302336263781165684858399471298049969865628329325210129382616825367167316696851612712318817912494481626932991027215091339651638160881158085101701674236604418398093267984260201979725156900128133268687671579452828651112368243056999876489261219718962904855688954471900974997526558795551601877223731529087752678987712794067304459102365664223337499477856923819596386751453958569472841707803734283694942720357233133969771589323156516683980344621574624218700824690213078103820094968038253573198318471645900152792436257112451289275496624261300943250850805537886031921348611519294413195951267978384575028373173178753950118771806232155268890898019843809409293983290268608007855815532613234372546320866874412659147524417841391011573796752045772750370325530303726483947553244629523652306034611730582992584813861107364611596842411597412423458603985669403336799449531109675973347636814534175244126305081525996646546960629522045443996928332123129070009379863555821626781008370677457245145337282081248550731835569831000226996479970280448469384895572059318574304749746128837964636692692608999729173390114182639162231624411973001657333710459131047879565227580825794338525940016534301141030857062223427451131853607123871023264704697679788742312157260295101091032572510600841490329093159811357319319402669192668454044667795957751793580890311895832645295733842530897460870190732022607182049600069873216051136680577100556876019046647116898070839835914972394605510615592220391521185340037386374364936462435859040046523007364761361849623613517458431253080780414542866507327694766943214210081903890828738063752247518805240452684556410541436432176170570503523241519635614477095669976260204878665317434663339918953870704825737140581712952177219403621301885878255176139962271253470356499034402191752440302346144328339936595160922218509063137563351005189347995642099810510498649707391633127441887376516989071370519779794434940871315127921097171448429781576242298474319816090936367233060205431028409139982366271960085820974589361877973060374579836458347659933940201690464464581270360274842202204929508126264250132282123334066462158332712984077570949655391410617950762807122576216296798638711807395711458000461154049468032340829937046641856984473539028072267365372814940528302510621012418981147246021627546845435118484508285121687955723972053374964276502450882502690762811429259866499305951266840438006618325057087902269954992949875981178319544495828468888611488995506511509206850470567689123643112908271827561642810952467301774098410139313582748020777215622038490549976616096514609494417371852627403030795243317658324395941760330854162082050743518302290470063607516858798453186710712447580842236061789846595893923814187390196227355193742572973133375848409661661930695017731913169631760060320346659855702629484660090000638532688412262842694553910685786717575786811224219423081511350046269145393270304787938219019037120782632327170748485939426521766972120903477190349954706848319403080916040376319667901166685431334994327182332759149261718099777251216451209268901964282200139587312954290785080540063970510429366524897036372204488478262269007992673575907765843580080361116004146665000130602593287352969392446649621020953597361492874742042849003999421657734595681305984530062060301090068305067399923199414629544460061705399536741022922360336295323127893992195879754211948705487418429597431718015540920866506820514608595872086765530036809981972457176195419994869402098319975368756773746750305018993899860634133381124058070990270815889565540437551735551710965807637960836075794594066267593583129193714377460108913546340699321464380926123806368816434169216416746010022180461745108542617882518418190651052021409206656937137301655583319712814213177538222911001495459741114708931633255972919085180835655995633587829395045593699265692436762614189701565404401960307276790581494052538967701391249874070351921571762046637082030834042460922803181119439458733366211665772800764477517143531108029086003776806213941099266924423975357290569046565221565943026946339519407982374707799920363740731967587834771034648658309962738709056792481154158669886259499391757127241745377953739045275916803889318516828149249414870199390468577926093707220012764325373226928063001099933516433359549727501664004419316066323562089727481107265133762218917879364974635621267687283473801001286153985486444313464644738174863737592098571919813919614415624795221179415326937712975618859832935131707226759304805394364594832047822841530636118175012749779678480357468093080596893793492922471000353543651630728931589044733025297685849151081645119818301530151847157395818898410788096443120342474767741298271365918244757790098919739464181668822923384807741922459611751063865498266951488817890422903420979921854923589415218075000546544235693394665804795176986761629985145806662598292021602861397273914418366558311685594537020827798148161931383544544897456937586603396676434301795453338151221644638634163623921774067630653551860378796216741783987715718762601546967787928653410606795522116182223113562902997696673269338221903398085085129237479134917422905526698110754298699081284012623488602720714137005447487394383525735114535354630842398993161326605590128261924011170193767445873260293495457398508414395558114859058971172568994707077807365703018794743229030855222162866983466198076974777636167538103983058394296308911270529150289200611468757444557587229307077204417537045560832669378750035919605718295261968014455282890616621627275501943417530886326363657781325239183000789192473162505553235700332293590747831809869579172922527200595298747989672952782152632441776028477296242732765613525305244181214715788792670104201575867769549516010426457594713692353583556039771154186316250478861124907647437783423890897518293867271231804859521451918585322275778307946904523790561932257276428091876185672142708278963950278811481791324460410962952965445490107645390254255821448115185251089644799070133852040134735950963831105265307404871840017980594503309695460834585839382194648356620621730944637805461700744491954254362977918911322864280650264511190069907283892848278756298781742581494483192659013065332699271925089640571024375361516775810337261350546953685272759186794928769191489585784989464084179679438881829478388902160712580555158000998672923960980165002668603279730636813685393123700424724726967163264143265835837245538411666691832326570970062171780464557558917432781634992993967978776318809208078013520118716162075125844900234251902114581293787810787477214202838122537714480502915381728927892764913841361867820506323510233714249082100282448238581072031507557208059346188619468991368292220981708846397677322630491301188582889475195015363987074979444941962073913330660448638759484468169004932640625835813677973901493075286964792105024054545255862872991424521831780548172430264770047076826203463197905004797648845335745963053875324286835190872473400408361512096943710576635316810610458397125858167743337741630819862161410549964506462698810256516089930214156225935998820192100972684685136411514461445957934892544904857007897085179917253278315977033420527106341325016705004029125332790333517490268948635907724600344564193311904874575712450783119517902583837592613067558014848764431277505398991732672748410066162457499457374090158345888391889916965799224402528144805002866293854704404105798369430752098200778994122863788834649102743155740195940184445343504355575147531576652850200858595501992826929785531639088982281549326431935801192580150514987203045520510174454079235731680671230039230464436661732405748172604562400684272531211455659704647534553774610318736080468823631185957295750018135272793932939066645241211665185509726409070426346535100233173016791719235273280590061247362864386741187719032573162718799302185358429077725382717436143508413755944924482902000826996220207191524642336139679656657656527225741168096187169065083975842088461943453627159799775580077443228955864665608127717810543464888422019979999327259853612625562752031679714955591076162636415633829468368534686621747464957535801347982657651920831072878138144912701701296336572687743448636451573177902378307322848030009398924988743357252808094201900297035129085478812524960236318393161883799199092974498502716894310671448296337548875323306146218346542770503243233830435021248606884757673694754122528894560940814474238388106454005389183979983312281297032570642323878690129512248767625278821199811702459026685772516323413138169090509224402915386056125271177448985882728401134707135195442164788230448599111343557374203668336729772481912629438146940117713268334604012452635466589530033983361406135362941228483537214771470157304463057337539833058947543734786050698529595722003767173552005044286932364984019304997582687318329562403255166184024623149125288192851563123833466436931576746839660596641416783462093543754896220925920305068268764496350501128148464616192466456736730812069046599938075772606851595952362825666054365784103940877045038263451787034891556489376936771857696765336455286271501444976783272178893624418322032437200082892436023261564769162479182855927804015972472318407317816581847705142437461310589679663816518162938647933472549945824095896162991775600371889977215534396599441860878603385326631772427433570208061565675050881772470724935291382700958603805532289112587971793490675885795687021242816354589131586353824133541031606235643323008402644251930019797737462243713746876252315437632042326503238208142177296359075455403963974173613782842920842822259367610914315913239447440451981730776155011901045267761463332376950522929316950638008695321218954726908252083774659855542346628036619816098798624405568249905174175603276385938665833952606136746409421594876246588456748504201892648838236332081087539042235235246941766095065888111496197903345116106672283916663142424392220750560890399473052294460311008157830623964377139830481277909417163007534547018830964031396129132968655125535789642150966019356891612702053978252557225963728842354073581800902877417852405754368064347304818106603414772608916558542706348971948239643457476286053294854658132996988771285388340042089741660028445232019187539643507147157024572284248989865494532807052135193869289667700483302528673256675343653481440518308987496506808809273306728859471283865193961925128959967544042203036977293158347266317490809697949593681688605666166826096869162999535952978044227547188113025060532530841109860415638442361471935257546378604364577893194474032429722767816571623455494731502276919510198624592111452542765807830489569239276631212708503814142445082993034694303482785340191501552248495152358494139367927521922564644322555440215932099547782987576192911965854613217217767783185293674259094715476813753230199190893284477841858170899911659711937957586128322862278500055294797926848057562854044149645129491794039246826224981540324382567161872869661678702291664203810934537842211894363556692005595187698928370219250888899942454038763475938438018844868260604586221567506926405205326550934251947500197145945353862160965747206941146473169202993052088601245443214258036481277747862423764554113154308347596476939235934604890013664418375861152880150280434379453255942609522438601587336898740629594200128455096628313994028279633936544028613038399258891576745570535825127874917223204516574201544608310480169125498340858811388137671911072505017044517044764773902760263428622522608731722751101523680452552677553528402530980091999793151398070993414918862950847181282121828213088204082554415435865737852607520223216406595494441284004980933208090129815029212886346440632228805537484331270072108649500863637840172136722818663767568770242771304734435448566533124878645783216323288755324557741507127894636715700620747098141748679820675442465044376609808825520647374563110215899471784605924911234115913361070345788788121904200660063312905406923990530028389238204588662436951461764847140591978900591615610473114452553909750454544101985829764233386797975654870298619119225750782581758385878289023730995876669404212721017117126690882359758569024037226744651959588628569822761596120714173159610386849186228207269012425858817329114001596236309953435926871894563351476385218487925877041402252485147424842010629843334907589153579836264181914738300818328388828822703856289689963617703995899866773761869203019361406550087019679804310200650247903366231396368159599829803743386336001319387930690489154522543002536251827503914176576786228924295144377081203637116043741308423241713186856352847422214265207833181960503275555532173221654381131840340850710448832066590473212187518784196645872196642390626358376514708639226070083721890902769482492304707433973689010685151676554471231654056895544777282238481173920762349639828067710349040807275390847824982547787536020745434083773558788695423491308893323091513762908233917328964253769048337806617881629326942960856342485241970871014181399739991548488348357497277461812979075275236124445478420627129207184299033162607257246126302194986246059200584011871975638472107247988923301721108609060375529221407241247586090219552364222254489670762174531969884178380037240540560645415069245013352705690314517986269466663069766185149477728993997146839412572184818301108792735372089159505984510660081966011088899102206453418632899688584097850347478271015475482045656356809176037570041691220226029228689796464518662740541580620147236227349555475582681577759909720323740780065399308083269398804581353198577301081817707772067389473982105225404348138525061159412241255768091364943842776705780418415874654957160424601679573576784512734854667358550022870490173183084475430381889383622453412139649654519199633382246415121647680588385986391463574667893025459883779630014886436261826212027992431437619033212177108075946363987826831005532688360183531646640759623726562520439554183435924368812010984600550261611054389069476992339010158901785092062899883086612753444051301595589804395734359985033291756587242704956538563270195993642895561916480293963643377881091448214231942953741903886541775624982121416469901143325091931058710657827954048875327687291013212065972485294828836624394909274673137154746693044321009103797207172950059362461011816203352920459071988433197732822967149907654751380183024299212926269225469491513853768875182585557990698006788855197824067469634388526360786149940729390730368114089141728089533876885542269163922340466443681381188096012719777626108527603901544754997237430789794146093071539834685193850355298408122539287878571441963826549265099791312983021684567913202550882882052177735427909548775461048880948167445012416768583936285080781219249728537855857415969004335960353840674541244150475019467403734441337950190760659157145178797127524343663574540899939358302955815798501257055497317902776544861181549771077746812209458298386873032591570532228655017329496314028480658286667049561791988570847305665840888165100167146818477743351811212826416153896420868841281032428161268993584793221646525629377178678306447901494593625650418924450468688455318380859092917994590096342490532865691826783992881233829722202547940722628826142173363554744680659814468144213421206733191223962293605297387679234879918618178347455631748557659966950573757432570151713599826984171690742546868677881160954993469047820149116426730415435222759238721591646920098816205893221746117667137931999292959155755027800989130173239931793531979027332819069618846280358204243097547708804860936456031647661472870490730575756419721658633191507701429336646697369377089975070763163225970250963736351060019055188016050301405491231325842864658978901709158897975238200729987408062151380326012361434696382954877780303132397243977621370643681612449243591490513339860248785482324405340453570598403685081286599378802162795838772515588585292386631433599266416814478279320187278404113497008352809478777406086406607095510047983955459074490173271718264188735694920728549734757596157024298659409354849127422223797615111844018194227023340183596719784952748382176706437333654330442124970173919306552792838516994954193579818655392247918734448228315864126575933155199307371631184944575395270126979160933779225732251043613280238352805265673706182410643638965411773600860133587301562147467441778135824318573002773522346145909177570883207980502326874934537091362631782388866999187080652687666956913988198607766401789564577284344118314959965007356333780920838852520323775546236685550319431933266678965804060553527361033991226650024767659023118363525655454825266109304626724626253897271467375027729555044853523992911059415215098012149109546703497341326534910995897034642102037256487219100966803877359433063424345883132757314140185951658002776763287348620249119078609150319503999644866603616787417391763960264050379443445861899082663146385138373588280844279027661389296274572090472825677350092376116299939181745991801464756359952812255703257088779489754345880550279778090179067989730051540044012445168136065044628684576820694391109691995013418496401353415406137891143141092900888861326940630761262980510592621829895837882004468759003369763229447074334796504612379757829355624284008029043175149820016369972272495737749946637794044585511135380337951623906955168766922024665104021434705061835085585440166830925801002178118626541356326041274294599297679727871585144639691868668005289795422506194673878921858118755141263558890503049848942073566443048341277624774499865254984429523568926641016196359413055106751553093860266608256020013376762523937467817124830916160019884763931199520036728832292329421698732717618031409586994348617418921856749712872070257500987818557967588987446899097845828821202964797633516558618228713448727208610807534558151865601924181586307626624418578868564054442786031177401250738678235869483645294088515554169757417670064806119267223408144173437409298080112962545597616475774200466657012143960837013153134908021379623266392066318394734432762793388808909738377679015755689414351855254370057818904585753359207184904873524003628908946809582424014336520366681008631585364657215807738399352640494604759531714477313088084436419240584104409389939131283320606883945514048109442778604516963193110137277045781449016688110344840351852460584286206697487167472083674056642202706925284291607957887044415277200251825780607598705935348023486528812624513597663269780385658273212656647750299620493807843987380476158185428531941585895448353980086250231477328104034097038915015973158459510940347105581723922359667745486192757967977191525697954770071443902914211426790964096242028088288595773262865022430429579051025954174763431195088011978767750264578396038114579636552448409649204087038580342537406368399881951091015447102816874494617524968308166350506194830336583972705823525292832843672763975670856418059001457569131741428112497638983726778363850525661074206965019498106414732644684415317945654290724885798301921612690960316149438762158523561313536329787815120294370956143481431757846550409037100210225886166831273692070143648178872819142509645517859693711343506996207412274754642021134680426668197343554071029055143692624305887195511574318871653647772493775784132721341864575786696992982396988874178035592458061878969735325024536458083179717253145722590432300538078907293214313566502721879735270469126292353593516469238648394025167891152244222136869586062365244891983106725611967356471640463919213449040120426475971752464246232468011494818484451785948946526498127880904519914933122693562849111094284282697609405697452097684031853024842904855482098554855788468701666944721051535172721638606090306824180142131236229102122566114579480574718199441409446581511096983381647075893094528106259601366845680708959003451423523697668411870033339064932493462210742426589295518147998843683898016658866796627853320168279346891957440390733682724793884591030079462199767384384000040236880908881660999952056825277899681370050854128907638288283727051845286546798062438664556381805910121328434510743522928662243491032165792448415157651712569100064088552994995396633055907704598273686600740948250297239454363891896908058796754278809767111201839939001776917008445391259659127672215843997894005412843578592368199042899234300272016205381000682928404903101581808104973937713744659631142685508198888574185967076176329567854197733212334826238728686327478866951053323692995072890903915131850785260363875028753577507611810333587272605458633866133766017294076323269442179725519067354381155810891903931139866236679713392893807020130441915578539533172173864807924315299900984569804828181642764383847539200978784175737029579710873208787407980655775266768136326739947749634124712784543889678267754304571878326814141215759034262791305184147977930047518609868975475899427498476244395270160297002569615582020026576613376633044554807738222720290748315148709219998416823941417477614703788357642359879147446615636989816891774076456872396725052048545482778496933577328591144833277935525429018023220635188513516384641862181764283014025014561629686264850329260582836735809289638191596970382312786981399597564051781381936757609435599136052660643456795975982749848850830923008761557212894519962194531744404875966809641170936370972102723895317823172743705222036573326141317583747941500434912368588985430295178833423115902620902127060127294639844882538721173955487102002614650451393575513330533583044118719913653262417082996022929835298970990805252046498591344269049790945460297531175028810110157041207635978237669461214414319640634456015978923005461980179183935844914763623882813944637698402007427549950992230220136175050998579769799044467622746032512883539824500022805660511947641008835807383185313924007537069944609443272767177294138063167344108899756994944329345291232018729819074181692844287229197254505239920216563351014730210361032516375265827282510435556939580542771186554848504366229026556385292690902855523799564620023451444043135071941984101438709717089866331951341355499911593432066501625776854445028593763550203372847908462216949428981398482904701199608606944891587501804691189011074720602173000490516711290906676309088038056937018181577201949404854410605946376364983456280647408746125286364350039293551059825411182299286522614854613775826837569649232109249605332385933613429112956211039756596680215385776363857101344618529416217705746823187159683676455828219490807679958397532317468603119109655704042535039651400621769990705070527490483762911401417599020305929873280183932266496699730812950443967055000550644971439544956806885679820184734963855707678961698654102650379874198371975565842415692275546218211075280760194583654469852333362272059690182143442140960315940557822239005188053790234773935670292150814905830821161894891028779593697881676262921991464169557591801343171096638528805896960816490700776487583047728026111885064229306770780149163767907959212223773930861399709150039504622474524056396595447906425059544944739820597323742830115273127460523547936531740223664200128021314424422006099620483307693457321911141461346850732018124989126168959291352154227869618248304695861774707675353442146851874612783167000446820283512092654187927227713156441905164049417470530689251161909942930085694019362377693587828167878400735188394541858493846899915507149189500149212089245668122677068705586163206430719004857998409909889780852427406375755168205985012787752231514156481312921467044418633084265710893089675013271179336786662675022549148414220992548445864047019526781683238640427907824786736783392760823310906839462618522929567677604841576652856477270148537920566015436178097690308511902819542066068521398924745323239041070888971431575863399573603110836314866689237746114623463232617379324863084421715799794592222652164229323623579272522177842206638627224130844062662176860973963076773029379535863616318386390415833023632401490324893863774997328514910294721870306522559849087714767728110352715481923712200209448675568049178703884200161193586040168799105252585191951861352367448862200497219924475718678987146522090623835339400578473636172770042810606108903184568819650342252442527545338274163342828073279688688711795467086402948522435861878535183243826175838250516426290095841921257404095492494357514946892469721752807247701743576536780373537399395820659347078927505680676826239767020728205994579750002658687803785562735302516388384080814312714640087316964102389064835477211934893402810277180727120518858353692715288561193656673009311911052314659627109551750254780063789848349362710726080163743652244796778927818665731450911400344552706217165305068342956043211883298769826605144573794418343235819092871384413386667210454720688851904584313419029765184713104800888842599471209170270810256806726672920483082962497910571276825691294799540647579259440332291945283434784026666169521865383312329684282887350904489812081157644088787843112842697342007104369457457735981494533536025121389711317165283929115389829961901453218154584330103262908649627799290532138412841009764872180547226057155263723675652684971316953033902097374512752392751111316257488243929144089386356630537307811469561686068113439716379872397044512385184306751490578193216173406118563313806058652644246759987066631148009557197023006566667115729909683127726458892356006302268010884192132595218236095181967969631709476957822748574860345714627028036192648056810450172192240609484286167250512841092231901122257895877756423644641120414819662742825561419159472977701832545629762015272495951954367569456931171572389591214708795914363864211430138642281130858192863119179672287871389097509298053038881724045640676474380954573316114496197916058672802483792041847291547904250800568433596628915340861136850630900021164414353369853413650923318750628954722682679644063742703571820621336411189781252596711819483560763800704025440660932561517228443926067488939302451423237243551301748837406860693969339074297739417192936571257790446648418462172953445471990471420259159381015405944739275910916609167962320532500994256578486914330197261919173735534034878988336967421985803369902820685029469841514071930524505821089974861443018016375845435317808032613335171682093476536882718875022395024820275373507147742693079324709421422753682551198899829681107168133888777189405067839276659709521273689518753205966750873944678023812960828621862743439059121171488223000774733010939254628005363914804433207709456421708616115023780688566668005602572711227117116211433519559023162060555778038528622364229015551920297867247326472069917997490702823732411333841318003036621975472877348403329551715968981597089502978599185115031041784947732139485079833677958902138616996605044155890254466026702667433715089571843665814994507479962642234591534910933257752561635826128648150985020522848239797892565746759586852645563326898590209795615390810732588962423872516414560999699304427403788796602611840700560466488525395563916737753146523206174228619804288049570777216558645190882675544884689236509163635562528343363505630463859106377702421861858228349870369921662545672138372694661631536040052621407707107556514908755739518149974660192439464579089692243471129075549814202057924411313980837685240636844195030325226392899386590514337936182646074431027011214600740789563846555438695162500899947817467838701001488764521743793847269797532810592335865819786450731994616219794939665803969708392097861744271317982591181139456768678528911720826720784681616827522414524167001210345398490724912762258702356151197606994497853488349054486341112634275377696258878686882119248336603634488631933935563452542530779003713833414181403037617911261852581345769187071148912679474557398594893278020253580630693382077679728665609946448509801758615738922384806506379685167704630516617308322786209366396571843752698159065091263933898456558361555478055026406336448788960907105598462012541068143689420370776391825540998657684569498473885049632509110990130416598969772642169448915310951931537320503235090659389271689318513211816390963815646534170643058922697701581035479380956173401470626534365760198873661649708778320399512287797898177853434206913515168989674034778859964239905557870840748630134326498317685227804695154587907609462123262225027582531086072779284595741158584310332526000744070881005768613794224621104326763169392209343005227267514538303731843959016956218397968856085593926998542143590854841303008466703091788969357768075496050023057518175219560564195867581831556205960470644523370187765874198401106636719363803074913109387733309997117173131825863558085268645864952214528467428845322936860546913028882207574848587120447721005858632571240494450025779419012710881030993445093948040224698016652385622531656250703190997351647383352537877342602752453190900166423935530353612664459492692679982833326208485303937470358355825972019236097643848022256891445892578860590871380498028695030625280963757979565099372619170075424003981315064672301484486231546785362100931490871660903208299655744368157721734525596003819350001625276466224247256266259112736809741262700535670932433633324323365524318341451911184072745960316148163653894879827208652314182581146293026998304544749002375529300627580672340189993426838233712518726606365853672347670195841267554720521156027395749473900326958168306180048196175949531383938473334264641135960736930290580747741357436333538957803515441878434601776086751285206132497703809177841178188471828634724096353451815841612724088291686389012634671083999789458782399103604659303248289948703662104935760706188383683236660386341003881053587453523048554091800604511735858744630371587503701957590076269558367277505358028154928963764753734997106668565933170159063378553371161473148338409478567094820602880119483499149992134855015658599681892118825676760679872081580155908609029961092158305055159401363306426713225027443667449130231409139469799767979651815013279323512034065698834776982596062944065370398497304383854383260219780626496322912871229368702197416966318266985574085895958555439751234603111234661422662420808692704676342240257519629144124582255717994067774123498456924211527239826437183344197048695025248630570892159291838273291774811334005257823230694630780552863571658405522099202661638618276525853306919034906108712182424326388803325023279389230767346824211630730655718421055965890098881415165686438163101007792332556192893474778504027045676599656097558776808294952413650945700252804204151282687177680209192191335541120108412229019652751981153808524213862272494073865467829912756312309726675282650941766741494851852962564295035792408781300163240109851537459486535801808846611622855885935504200207661268391210042918005819914015445462162234416236695609905348815496964353655266974915959572969499770217005402085283531021314339389671677924619269445962928311886087067098050342014727153637361284173825831050227890782916751134112686623279360524924909113248476460212020130056287844205458847430269930572330567879218078795688044592817656986883794878086690415985322337352500410676681726924009677420051395859005498657621344463761772229980080858892111419712253177429167639324732233719958644801158598837920534102959844297868170913853588483920692466274314390350604899662028091551568287868478506371076896874462753270428128831682257775983849353856223177428333421717598764510079122343731268152943961876372567160125420722456581745458570366562103462411331248938259211936356957062022945511036228514137741873268341366289004559146042179244482711495752073632734741212157383730990873061768239454829871845415465196708554877178533572610814217119663517148976260008357005882612079235210716704051728922484688511050727118682360055108026369367427549249336145903462415441472826003208621275005578084592710838958339039503608830898362533753678602722681866831426623999850576012111760746603778904609334717094879429400730714337861828530967337404388016554901592732609913338422670581033637948702105696646436343264740834081771731188140126118813834898736858135042307110954483444355278557215223883911504303387993457122072984804531039374428421169518524931491314288865182381262468082039593026278228320445546997398491974666107922903483128678027824305804483155860440382227965803466996267983685271201133720325145736911554672350674619878723753790134710636174800358814520377842803292832915045668059563905228011242251250688755940941649584329640397854101622116594510667086367321904273410657488337412837085686531442865854593768479590484989735226827597378983188639798246485484401050116345447236282718099083167691074968146804661981428358779936875978080152822561708605094542122814381280681744005777921830751965812079591317580407367823806285416351940795651286663908272449005557241508996891986689597578610209839367873440057256334290067661321652407639155022169229794612672905163988123990553007309072550084342985502881312704747961448727139331407141121363358184849039756630439385134211979656584263838561806538669222559379241576762729174207376984971059187446406690890638460037707165416200098759666420267527693380084878156379980444305858713132021324117632474521356635398856776792610208988077229305755842469087177635889385384780980293823605689808103127338404304274180906609186175891818184240499576733652776587819423423232747118713116586431993601337079685370017831719707411471589669650924469854149584945704213314761367831592013282643182045986548172155999389858555092823812157828379892006006018496268128286494437430664489686298894666251002240203478294652660486900320182907277380944859498445446432485805646950848591157342111937401928907321345705195735273156112788858380325337768805091136492449889383993916891587944403928064399508702982533591816013789489812346722087482734616357319426693671315808084000818991817017668018016694493911782164436020321039616461914664304944949605489051539489946856715523814094804860766882252394648315462234210606010700120613302488397653793775840514905715715253775955834520911046033484311625936384982988209623152765049043620193802932529212033854862336558878345518509560803218047123202325291820083310402938687375733890309567816350847528546459437775084232668694456022203783943702660845174225524350650083658370878358189977746239282722376629021898752914769635250785015170637337148869033009133780828503323319564443087162160554650589290996160636223862589018666677134113706672345258732446731810560055919090773839990548935900689900092979319031645565862524647569123617376323026746769280975493264313997604181520010195232012959494109641960643889898535197686041301108009916892014959394538125678963344727298850958810770531397862675269115720496597542220413786897941145154113526740885366720477920025095982794527844597630443132971697217340230576219826469561303568305285349222445115532051112764770574532575898516254868896962087306374423508011060144269141815158034742457001481227650541411234452668762641455697063317609065471364002535275549483519389005374471781043717113980756481198181693233030158018973068946093644592978471834114244613312448237603288404647859468436938738627840260042304537106164497631316038511244270290454189291555336957115139504126934393804009492924462934134355856338851148189436883095108657639144726428674846667114322267246819470396432409940847347874476212885466665692263955174247499520063595227567289638101811587598558860808750878099523058344396915714009458608125200025784022875676621020356542311883079606061355679029481357821160442150833801077606652574019526324578572636704388085717777679551905232682392533850529928333453153164663608470688208474213119745135880773542608702495514836884660498537934042924469859316596513170272751820540059649428092481765126789715051752715369256277449085626067305680223698910745057685513904135317200556080966781331523378968702009494318412189808332383736619430236469144666229081707902015511909747015877192099845972589568779690754075136477476418648408645072470722837295183588374890179069213726902976675756798696597987489024095358387149900881947688382156485878801599404099847068367129192009546227001329514487537000799031337471141961384782843673440624161142713068584412038503320555338358453278765011505489982379367358616491328529498692871498012769471017580124508619054963886763449999105764272997587860115150420418656645409440346799676223442272989202970477384105145008194138019206418226290774314451213813380742848333361235413921465214651199084489983906653137826437962741229352608372320163632363652532110127839820645721719560066149672411299253369247390438576598053725892744660210523596250942411389619282656992468256399882745098876072871044281114221020553160194455332765198095064099135786603045873439733786236676823764071245296549711823440046094970032568303593165389300778895604924053332904774251164441434606795654829947647109392571868912026116300734790672914789092742540183137882848771715222498120977353462229335715199318119647684051163539378279206632129912650847513307528668363637361954206888858489427909045982597377011994450013985533528754529245352273961735138608929003713227412134697591774543698085418991151059854658398032219223725091438555094712039495076209595690831726441115945212149984659437793227932580970279645524510017132743681110129690371889736556407866443507645250095279337456530962464470458376992244468888322796597096039697415616920716436163737324692290510086366359559851209348319303991084916444468262472674731795256643129795522763385876772718619435011601690531146129746480005503082582182493493287849743890559182758103522167310780768156846556931323307447484345944894939149835911497179218603995128806354166873923729740123782910423915533473747147216637441293553252912548044863464395168408291577369398257007726361336070056128260122796821670198890480492580601760593337510063807193275397502452784864550577444726204417584178940293834148209761170926209354669740483467834222539685841756011692381389131657122775335859206718211849618952434626419974690795014940275253219993524128666024899854698279653074425785923718013170179737563366221277121659306836942371241299343083930956799358754632870399333255088282533172303169056123487469325471791539099545642813474016409802409555902094673747145797862490412835834291802601980882594431206600782351595638727145751511943004516925707051561662408271053973358631933400049933241390064454769074542757875663615907050505380632649756401177883964985011533959464215941356033556862394428955581336396651780141119671336229249954275930043981131654231749290555935675160181471482892618373921078915533949343466701715848638352998214008838166281772903768741668475617056491537261362982839447404723320410128203174793380456292809431808295241587859402394668762512465924955841706723662858072020039397488859008526800155112521951999694088512970348714255170493149742123905126886566402616386172631370092079773094171735681489063944659138793738578757151517660891160152821185468636338202065783550658326501264297683777480329589898733963376539220277652653414301591149950091265482307460697858778197094490236294755240684492155055610568233530818851510971527840551990653967352713204317187880021115186630418152916422660230411379605821992225789258964238502211859142474106776681330738602776819639448301325817758521683515066301170988821064120386190974954073151892723418102689552002445710810056447852570114277336423418427512690810823412083807445465734240489030383241158894558196043958519527689264727363569708051870413689846910930140158613038197342504423760384570509636624483526375672481448768977251869437214042178664103969993624641707732481731316064218944833057394658403911702344252466594753097749123530125842900698495878637510232710104083850075486433910567795031248666692266453814889664826838161127902351670062197956709807146738881736404503586224288697273514756417930928293461815639222618240532148171170149806574311072767761742867803011109360939365443139933916736734215447586860303990658110517680255311943865396233639928684978628789562158324228558863730187308888939499451232401225266270284070023788405961910200160363749144651894122169433374115896015724091808771734815819347216998735120008932293364863639322528006063939779132173535410403205833341689157411261436420200458507292049835901737043478599912239448569852264547051453100722516255013116189362143066615661054400174968245102884017608177770915255363293163768821634615252597421669606409047718546833477148521973677211808062802304664264773984666861015817346860614652759694131943434147464112265617601525598059354063770443506855250207895173275313689150663694023812592251353285600865651955152158565770136033826689731047713335561023904532335524614648642918318999415997400718581263694020695725979390381048568044276697338803772679075036096600309446509463287748080557209986910751950685263609260770003245066265340565038525081736863763343176976302436394922807543813140502338815779482679470781314311664630344147415296003598765821974270913492404377702137650899835466283986247979981444814757402758929551840188387973871349919213788242009465447618557245098753912225723725937474688734354329297633655175077024539556893305107348420301951366689177787852654099635754036791679968552882094325568733094683867469165643607989523615957235796447871352512601381832420093412205989768584710001588468963737287110762238799399133406276071790813156686574137953093465342408266296951948104553399239109425095425786599000476440345001047655218577043790753271023017854831134709724786349276672132991682069093564635815065303622872419991107959777688674377161943376440703425688905373815635710570094893348202073143276527959192186867963972677873753503198548143039547318804154467836643782254722564114566064822649317075364802019021161885129626963286299922338738945200906140897304028211353369589654002367688337713326260538136434915110542884359248058762909984069855680537588924845736577696110412125334992616185360150133383855036646362106974084456064783916831251577459012626047936220622926179830196320642616051965433907861930845061944049356999598311731531204416429610534820973693876186558147006936714958072161941448535182186619909005306463808877088136201732791701425532147301971614913330737921692316963381491734118498175078134624860472602013231321960504190062240950672397495665748995906614938135278017920441766369973106892052749376616599339964700207865226909320705468366786612681187887603374296745753503820695979143347369943147031660306314315067266197764609903930035510973122899458224380044912438197164788404923572119511942884019551454607837862781309314688668754288377586687715034694871251277885193303432605983083212820141824833251817808800986972744032714347428621631250887051794309350603873478340430403706353853566026274873395074394079731010163226542419894097633110395907640454455403118318622580268263996188699495734658189618488281915480488170064695239772823307608746425785401531852975372566866000075022230288339417611709814981546829223180027098890480169240742103931588550367420518790861535051880618073610682775949430552497345850496947244685641098661159717526725114524505706217539532497352956612422152378226422801659334973529566781186184272908981318043995508379717788624006088720588183595523118112431784269320535609144084229421035757020995264957404173404608114670493959325810465763750066529566855507380641397825311234664360925036690249256412390587822619763199460295172168577449319073537744696396274054794785212043298984682029093075902311320016664237272947381896459510906162064096299306419534613846114818054600903335423405230269610685149502272491558956397860376514562952316149327164969598595365302169017790843801913199846410537210904495186528298422427420999013166853209466228926614906272691919037246843502121938858517848549006895272240219269971629619855588155704686199709803878410952946136581910975993738199459863069459374093073622547495391568129258697397221480081498919027466415054508523759487764717632869520147227014590765154739453235401451225633543078005137692756007618562733617116857998541821545945238998888113924974802225554564179892544127925735576428744833817691238381417801283277201668732444579252627455340670449476120097845321662379396083262818715279357319648134844758969472107970750758926042989048174033556813063206563643683430822091170065913441448641275743277200434617317165246358897897827242867882481841657860372026623271336375756298619814805149469396376903926873056112209071782201800880663890170296462727862383705513531674792790872941107225923025545026369585085262164097410912826083023704563220312388384235293203355154767101846326041299139228285759534589746364426366379632205149868199079756508860356724568959305435873847480967922700560956405430841553701787858408432561073063386040208878392872206144506964368742672095526073528404072171839944286942488421111037690884529033518886269351267450654985898775201751796588918613446298172428217626784273022750356209137160127267659668640903704910426640958284068814476441742280439367655126141928962574673523090871276942317743804804585325044082659208743146184422211566451003148398310364872674157387406114418029009661067775135668982278509437320231679112974586207812623572930493191255785357852704241570936245975391417681887943646936970750694148017480209118053205583256385562174345755195606920921659494581472134517736295651254643407735011552200178156276917062579300531472501424862308765199608727219488001950087944686886564045381143597710308428816791651090814344621931328255663494165311571817887013448771517592574628186191197403244316256351253171460452043392828840076042959506820035716688140092432942348024277830533190992769045512764156409725754373912611251424597546441944016185721716399814855780301138224153929301866112801022381437162411025600186425016191922015133111356688698202363538721323433859336927016597924593685803252818676706973215958740468311695854233819382713016926231941885846271111091583248796717404007795273448149337622279294566294315156022945415549274507823624756374673573988343019217411422008445922821298630972798501285674881904569840855415599378506162490938953053108573280476433943627269535017257728260190804136746741949856061787692561756972699968279137983005643312300724709790929144627063509670617556431035086787808653635241756450338471096262823016877306439190058549844087844472273870284387488834261492431831089885581166971265687905632842214995289565122692238550139557605376244499809883003089823927307805502246755558887175850417645353719532403478422657202774865688495970666683960911948024784060316840427472633254680631916764884331417039363778531521149822620880481811797954406344398628714342189018319818347418256533270703283936248454075531322209011993740522075057147213274774519898021181006624982234498714214696384769376716488994524435645009706967344906054218501326811690732868027865512819737077524262074567175711265495818340569437532898103292296805995080999892820418315513857076135346852178545289071854948729316874553162275328905460294644280311759783064119129375459182320756327188263703553442631124157588502829074371956852814136864113084234792020347099617668376986807493155918822466974532088422492435910484590835734473047479781964015655692736660118017322752051568014565702648770207326226981495831301047226004899922256268890353373960651906072116446816965443256781067714403419716927171479270866093126298933301960103200846842547444783195134658917515710559367952097563271159036504575888325876668127948898318810328726573207607517271540047451522547219209684222719820788888190590125092742619564264897436587149776501543059614802977199820697155180696759901687970690624447034699756268487688124037594926885295512469659027028552843509361298137409924923379022055096617699457290258171845503168262897716764650427855813211407825922641853967992006346627953238973640077513101092235353215576679673361694685235527715541452256343328422936104741032611064599364172134530169002322116023659731220483746906034061981284134192464024168937367790302668175246301138223250006921497915279315811403686441162557025529808566306218052749166088643652028842568180213135162545451118663921018211652865809334477169481486166748050766681467142952936035551894766104739938876856036102067301575727660559680262486928362840352757707902569416046750756121970266071646116906027909633121230032053092242357993706732379619655894838785317195424972074585054350924807028245495742295090482320629119046340428509715186113276515012081901500992054178518747094144727106244057905303094870208329865156091510194645274727458091651824532018671442843370328177130875547822404793957652953363237546954138443112097276008826333046725609011959618816950389290855070952070559134693889538036124615902765866010630187158166059454214882702097572341954260134970227831895951636463315864895802623375123743734480971819223707372759934988376322927911809381014812664584927443117352570136551534067225045641459466991592939157756314136986905064680610081402532800254213687324574417048017358269723548232405495703034572651497562889120715350851425584934081996671564198348215676202478180021927332492159088812773420810404294064026723756953507441855870489765087908748399471066500103722701736324990205140450506186668859675839079032686826824188606739158460587415866651726282421642458107444684776634554428219600345178624053716001568798422462559723084897292148512876074253985360569207455731788945685217026947210042472704211497720592653737317134518076369309456430817405262931693456392280865819811982674718826901398533865866294548287124269056650312795022443009476237412643019026394200419381528301649440831039691457104663399995248616022493150891015416922228358420221906350393388450126343370479485027952571855603463885850463898402124547481763516369118252267097204673956982041755845300057304354564656456620882554692269260721340250362964227467713665603293193575678223963597595405123933330310239560182943091501264038923520083573111100732064751438308336573004358897062934425682871163834696878257109866551129062851317831897019910653501896863276558304016543397758740919124420196989991440188251756123790139089757007064123866639173003636984773070490939427808603579868715020126699340613313843214788727870383873831348457665682763061553828702750276275892419463151989285756965774713062672148228660429182209378565981744059720806288681590972766230061118364124836516807714135357046860308666974855769573942076604140378207408489490748365077972096908234659317283174575917587211803816925452215210490991096472887203373025954434885747404172971906468648965177886166625073360325747396498924922958598726952859492735032790029180183357633539615905983783335026619166639218894810819884624174437394095355736448029224257474668759779722319967117792441000744679997186048200922091569191879751979590034403106117214946732750164129493969963965610819486599693620518300807329701679457274140649239834513269573598641355240043743373631177223526222125675657808370511370856054689594075993810767773949327040603213932989170336467279680413542999891702022429697005306465297648174826703969830212920335160800861809321724358477735820398611879119007938291277074279344940990629725953757417187528007951758131154474326507765092278842552031397210336598470643997038789078071784916321132190777595485908832201539132741499131867369023931547678749802168572768796597920476755432627951852977431776670719493646086281666638248885904612668148860403426729361911352195700017801357858803850489974405985787798421287934191049360331906580028535684936024513660251261453355285995005466995802554856431733222669585673384321759456190400236427078477355585420401786386822097925578870608120262261069935089502306946994480565410752695550081224241251093423117874916176471175731241295241059116850434758560105381442996361967653445825619884141909921101834060832465335948994238989916178928705846184464421783544657295778915027855259667660950876831111740501708145693913473832777054810403398494575215211459399469812964793601764989068672879692195049448609757732439763748327309427166645824313891394700701317199766633373540851906822652970150847103940977119825932934936657653224899838206641500126301555551891586774389287108694966861102443121091042948943848681740919153132887253189544652586057625691033657676088783304331160141778359234259204150543902374571431940595880623504538506778666243273355383998131852819658310593495388887059511419723029965705705328831120352135480190209597981131664642369956246471662961424930328491810680522099955150800559653429148397759343893299567713667908312754402108768627480771611458090783001879982744327593639438424142546841518048389336961976449672334436713156730776798758795392695925258541615224412268369825374164018729294558173345025550199094636985657305415052506293195155338694120039858228029469275350950018329343888359317792402687759524660795227434700704193072749009320923811135835431594189026778018522906743199088925997959401347716243889639270149356156648500243321991307130222889810822035580756995622159037509794279989339119002667302600314947922287290104524688176354149575783936028884701087954082876973845514621592867320816409492776018817637602004194117167381013981086724731143064236903196288663715323128829608033829507627842094436781459090389562816301365174244833720507348671964719874435545251388980783270983643048714191923264717381330312778960151310401931819901140741601010181868118588089963974362134224529794717433125632609510530152960253702804397072981931366478711236544560111346589801472811913712775148204714103079359971242832002924594883277843518814889673138297117503869792938254603632987252413354345326074362980632862243135758870371238734456075680027922950635413572304587104474184841954694945858989365434044685189744122462031966541553381304012435419794334656613458879105930858648543599919500371250725166544193261754797291455180633292151642128040626471334459421018219731367557135789281887031124543693752109182061358898042776207774528804920168141827115460965203104195020354741494732489275469525520336343566666942513284301174157435677536166824930105129682953534646841413652964487124009287667894813470055085578932674786872836766570076203254236743403293686276890901951420910143586237330563982891487587832797400731851944687061906530578649392765882569593182491894991921557570717921136282282541844399509649993289503421588952414103372861010884388697786756558098464400628220967229224344067152993017265662239018943152110403464917354020954045970511819579506346841445411142035796557912499138134887919178615271706017524993360833515495038666948896104518975831719895184049003992191274658355043145470714970230780649612319147394202232794611723045747306938647844523394658176807360360095667246469990914293059490200389643768308139498100255098990270359939647005158509262034553095788458196739634635239206869578056390914461523984902297617378164215068286194199873423428434052065995863906192856755355094715244740859431653584494874001558685495217495280006734263798117423893338568148734771953603723378771209232667548867171760513196061946877211241593057058971907695133069795084864271922643824737750044255531015202425944042021392005034093605889809398464311591407549632718533730953158429857054300515374034999159079748189869779135921178465416845326818067192250146039021840260629036643970751329326418830420409683409525474789236293952648739813510100232789039648172571073621638652439594255451818815208045466097399386941367542132532637047994816934882806010840177658507570789523559128013009266218319612361219220591247957333888448183094803068515665106886379549678689574076950440635492438973373906934758678051375900251180897327513060427096131619514711522453223805958035052743843555903339357229330682700514143969466586148237521317521834230859855224971736967706932798049850782506252709018202787683106301803034892858099065181431413274925072829637236245708423873229127098982701784028677319500595393919905488513554000404150134764564980465762269669993312349763308251246061281057514687165163394761835103230465828761643650677534115322401896504774904644984628922099371685255052841643661755834895293013507856181168780168684198968045803923865938993213264712044796640096161487850245444188754223343493176102795944120276966653404700346168110289661315051779861242388205541089873023121250998122886394218831262102578487060717783421601032838356087331592305440123860090707224893203180291527318687640050409017095468592480825952987533484005811536269825725905015133265779847553133105917537680658632649218988553915518760741224130845095890470677248001266455499919006208575170580624479191675587047301540996161355440948212033333994108166266551568937954262917944892212252265130331166215019109471367983258449437519734161537495885660356852299473748299690804655906299467570457787490294664367888534258733119997939434988193290028972610835554281887999390575396402294344690433650451491234736061487199886434056566453677459487126202417023056526444737942138711757658082867163302680725682859079723358605823891920519629425024059527316667977495328670007900111788858744645694217493110200703797073595054867535520824548353691046232130446437487365858205026463542620430466834147988311037193512002203272503045565367000070289135200661788861826675492383479922988941704500879941688972683947451310494488406165427078387868963285847132516693647191470580109735213725333744000260212794339699992728699572805542810294126792934902070390648098179238732537236356615126629619895134669305683151950494602811755264430189777938146913131588816612084624747561364436905555400235058856002455606461856495564425928339458806577030593764692790867448509154586475504094920171696492953210552146325939330078817973770360060083515675288428214729261870733301472985552459402348111055129020630861705372944415599171735594003418219720197016308663453686873412967634379485876380698159415137157134520806755579418316363708944548063738596201987755565119019913891749263511595436885781024659999238173861916990396797134422969409900055995997173473894804283724876675341108032222280809805649979414054458907005508772607086489059611857945258334833519398522566864118275524498523415192484452845028077088563764707748870730955449177534528340984429447327428808350876604045821450960543415437547547093562506883433390051897106784528580702489717666510561232603718553706039404880785474165013259621644264284631621399717381885293075162143368325678738105030524188325753419487016664402701865708393193229960707781676605114967960640093959403717822920246594610306956058966635112247174511997144387029455588265831937857286437635963244208488246776120597265804999252050571858706191315094367309337998723146533504185191703123005230457720301867528129332078738841757361057594604944605487458639264802215292210646923063901547685420459884165029682736419333148085429534556833120854238310910702162531349034313379224931340183024744189783547756166615092012712596258826786183917433804223408168528858097083320673516922808505849740838248762670675627023413890478715637564663044917420980634937632159272500037910721505422722895180378416584485901810562152783751119076691945925896634247285873553565898553817300662159245479336893316670253363029979951731332690189616807872376436230304962733007949799104601725450354002767729133894179533914487676012314232556411412605820450942174058505488519935419682455834535301275807621240868331250786822795895263827116880168026047727960466028358356434431296865048089200866698140291812633304086627471290561162696571626722499860734945327003467177781413846821293183356788665677073264428533193683709952612508267128822894598048760079773691839573197537293811702530524762132208659622493431552783400657382115233776551274126554917409335866776757305929147462617624030478134619017846836419643894189092283074466807472177888704939404912504932927429378359097390281909394671404453343176713445134752558535921837554386430465737253051522169067960894553235034747625861720559805562725935923197037516051500203043200976345605159975594992591666457235936752915701227781920698880419676058071773754081356629906462170057946495646604074255859525117418690855437097729911059359619767102137937348851173362594694182699242467824045771947463437321376441987838858364625218767934493820114173927651481689805935043684275454981839477977106521651894787905075166004856389564461174934054954768386612656339277030480583984939596126265705477950197822660806899728961694758020551406272524891173523045821367141765496071183542920231681290119980117774129066331282508320449771324175548440811440954117979310724934701248467477424693102647724581018320980095406232587224590708402376883813132948606769347905603305066264956580816912715051408893965964083410593323934900066268950393152936417561281313872148547498621792936636692269975220533996800784029711501751960587582866012063083631384751137790867518051826602962077225390631993652234670306705437929941938623573208898081817240979282742895123358695085900616911712843258424951013677237831559030653464063332026283547126043329273652772754266987980819760197936838055266990552442505311912286670947400360445180526208986824441656607119376476272185731145620562164221627721813042861721752465863428936725248341074332012985106016051279472943298534377189098175818089597230085992298569120210113669101620862747170149823396098023606626590172129472557539553765597000975669755270131156261673350066180152899964818607776039688867215206042769213929599663146107356809601328854822863683470675214211463288469797380404440375233187778229676076282017885180082718633964933203236538960604288575726131693770510458782546355084080132378455007192931044921102270931110158981032800013541537366524104062207960434728588398537163687122648085273311676753850731362688779214386936294122869365457449129007096993753833728131208911006517514450717174500535496104330199453331653568586278816882145063906964087377471594762309770353934187708231784150811057278963670100759819415166892111020432746830852949275285752182175463836133569651964073133124994438485797361593202043148372057224169426854324428646740902302181109900192716846699689264124034594184954225157305006428363620998500944464386980820441081363286774369347483971910680852927439041929356796009952361046791243862426994408055904539040591934218835892069169345460604740933571565965196478090534663864850346394648551834165834735588735436562383344486503800109888818299948276385061899554215856549905228989205385833655915795197932864266341779930093986360632642146000633315554596977937851025053697134384479964219563857604361976241727685386730544014296799622491784953336483392835452298622268457545913549863439712589476735347969240398472090825255530179512600064270122460623623005697647066687395595584139250798180719340607854961435278429335053451898249642444468176823756281631131195398799916087631335116110470010167154512444854424429927333123290110473852785286290762762135154763146235638960715804147347798326998610704680870644648104637664163254241609264862687087669680426733711182405315887798580122850544203368815567513720740119308579793731188429834157929534934794244626462620496767230959034465425868106939596792107316549398499270726123530702131055836141698722870406075564396241672463430138448150319844666137293079182217210834743513905471511272532958840035959608096608990555162527558761522006725836853877501496086323016871670639696451371571162723676599334953826506199567730013154697496537199164488286259480239725421063778341472056607621369655560294766099777800031211258343217267000082977623228989188402032029806498778128734138055956651127035589939020241285525918742728470713993766169234013290012203495254321566320283466773181019990888458910344641271633561229536694160144034534218925186814506733575760642059836975723214984725210455672518551812110388571960973206987773673647505421505122311669082230543152522353293740176020922176685461206280226326628086587218593212689737370916851775218903169347833195214844658605569727253962247498674489447202155736921851730243193592983038981759027213141100820246515891208784281033519149890012698199434442644234822081516098887678327825668545481602163938717644083657989030354319675233694445325313200362034396103488004705621432702797134331663889637748242873280617348134855255753730287295922207846048852184661465431351308229914942348028514119860848381712073629387280506014971344139109131755384936821575767801843842009646882528873196908676171193280064133357929586508644546711128127691919175999777136710654699066376466791071879051796818103838387330779276728893664279314437312468445017386541490762073978060020290932901624825774195403579880598159897331150792496673631524912722291468934422737626939209602143910117143941600433803592684125059737857548412046671196624915848599621103143558856949185295250286402214831970123900397271390049985292501108454610027497781531309054396711224583997892017535057722841250329710468360547986111022651063800571693749597725650822845369424958564901212776057826510266467966337964915354247153591253386477956723722772247895839174516594465458075465532724250812060938201656179864814454462357377875712151163164813921529077980817840288626251982537913429763650260654816672190357525033174886682519707702634219028885196839249605071202663025400491843832251241534201576716069446904594785228999507968530757130910453892353696658759732585590314518481483172484916120832407934369029550956995282190239206275196939394994848030357486090412744825419299652436711679913101213928078023825589078305832082349315162468553856077418835346637425493988528771585570524158634400427106058992721722421791038841291807323749023211001921760044403986634104184891622354205058308081384339580790720071457509544553077292660406946639310023911354030575130055523780950625556378003605499827175047134672412979398721855723587621066755175751943322359383455249575250468652628481216745018651821528872266061182706343384283508722695192165861709912689534336513774820745364413408319387258171542630789511716259236090939766410130996788827536060313858759567494698520858372530874148629136778560596796554568111082543974959572116810744637708044477459461553308606586292923658561858140784373647465307954386717626541143132697152993267007650678288949551699547161942310429863352220918483280143943266802347934196240154670422963950992573761256698245956538133935689306301409722257319850028993918967995775445265378283030819405810832479491413092815073475466697037632438233927238280091966876126230090533633417522669313368004707082995530323120189267237885018905635768834574260936248176558510013767323192772566049895219960232701780736628283492531401452649105025754580222043554364167391401266559114580894585906698823242226069121106331705740443519960829182814489181137792500466896856111125676444276274941334349351318278265705019188646381053202870857346896504939611443443738578369239694106970442754808035611078718317957673902308498526365593438842335395385787142582644794147779820500207285423057543280825536971911327249725912564025545585248421924451368696544075534039796304325826466984033361392824678307414132717349125538144314182755156576999605384074329085843472223302591270710653668418023040091230147511371455151242569845995590893678492560142816966506612093947657015589791146368300035467901867767426261145911706791853120182585786472495248052458736392684618576756700406014794752470564818826854376596934881314739296311897088380571933835134670906385002963918923769288521414000534035443482109654949108559342674494506697822522283926402466828444344486796790385174656027088865601332676165170779842454779784827578285171758446634131856458091171296958153429325904676925926524819436005116946865525948963023840387189123701750109536396621693805151198213239820465544504469719336426244894234781225522414855981300274723820881415850665700282561785140080953805996760412340586172594083461148046776756250172204038428070686025836681589933930723607435233461284158071729684315805095689208331666627220666501284168463595925119250779949025316044856660567833600746971898980413754758966046179417511692249652493927567149597252955635930100504127664010148787079718488942040540564261399040990969059960381742389070400392858201785059108234142783107833489543318640508200232841704395899209951747384158485765976358394819874088190268088658359265553048494599455088800062607276478667532917391685923360873609196552111789769894256062820621762390667855709946961638530560650896221031472169743886498971834854564442300406416693755138210110549023341046771953901460230890682559128170820091245451033575705941154965260290926804677589978724760023955011612194251037324312162800077779645294713861100791791646113157494531546105444709568488172954365042386289723376276527823577750732531187616760484762207397842792217062271049858500574896075587878777618383221465284291195836015706057457322647602739665116478093814952474308072296354315628433555018123144005924027074562045277042989286574027551394906607059749469146435906992135921745036641696491008795817375544984925532027734724496702007698034545678718813552859637786957171680242421222828069410860525586607274102421972494376197140304551921016438224389152485516328220342387049448608766375138378971619528537182824650815984140777897434364633753506118403356823397172825939689019711138184308453263520168598379410954750379932338415754084449798140419253001597216604132349635691673574919171941749490696891907623574168694581315326784960901909170890533063836480736328415497720255545328583539828280297278332822165653536807169291869222487145847040880361193539911329418543704688979500196287975177608607566889516765830369487180789659744999804340979086939704018222523259076490703808823299537327058555234169493663332595697014871370501162406361388672947438626532809003832859038208879061407107622335446921262384284941709237901190901307410493243065964761302383969378685467252246218757482299683607152861370346801923444611123007417443467316542345421535160142485827781964401867600007885608676733046052957623231467872913453529031968211976644243840243935051406654090178889880204510011539313771157034877593968380607948716922335816974527212940173930001139350431914586769176755338105082322439328691332011341599627553866110095280380308923361914768344841436191419795191475479117798728113726160286617176732636190265112708318651126709526930680198056327933358501725590483902938056897553436454244529281099542405851400012667615553296518834620035222199089694850787485876715102566323919434879656026010117275597018099701567862955741958899528488879493911914393858297015816181343652059780303543367256720782556278841639713453652020229450152053120311364818212097775807010231872921955638147351399386280215273866105294928610869744904524478680681863472497701944763943879487472078899846563800620356535751610140703091234999224069608869715885800181688839632872584884369333008779007841089175792256407908169422957672082793813994486657158994162382919783938560749283633106721165721917160469134252832925529084129760667527594261388097514428261821530446806540634788056896633993696134751244940896610403943556262106715946854454822557383194524587476768527296394675327762928574015487683763027871870106947226836679222946699929720318455965726684919170106646183020691177222616970137109513605818653165614759277575441273906018491117954064750305708582693433455904539694699755861395348727477072482656200938337221945373964938266377083100547390591284695299897590886079365601375610640803239422171960991723727081414455295808714787616017316904925785881640679103917369448588741339824482802574005922195330897312736780437443263881443404875478764462955765523134886758243010852024088723648007509255249384582279744077490117548955696722523390864820985621833136909314481438158400948831579101117406456999615413197288670919066605767530352287304423657326835642195507938739662365623934557385207500422974578701233720189489677072170434943551175027451545650671973960313814990982158661558464477185375181381602682888539935709471443669581732570432051626963317268432812652954929166859645826074826316256523210412802916679400561360245324135482026445602877113636152283073225457011350422533440992962684205603034151517070999440395030560236834909362595528277908765378495413114471430058085527003972086647828290757263846757174835805814011612159121150747500488012704908130847346487904686307360279202792829503553531496292943372919241048745883802907441882926990380139917433910961174575614108558161476180183278602007351955725154055560327227524756026478029601858973597968001773089893448106616788130753869720940643826067289611038441498728399233131614703887412884299236300065382675765218961474576805686013531004944716393519475190675971240563865059104083610640374475474026217491159205271332175508398453006999302393716438279185646682228857754538573600846222084178475433322648280021954705288147296768107160406097087765153584313202272846062736174214355125247541887936306042503363578881825333776734507759883620214304554529628514090966566813451803234800108944310734566859217147610197479138680406416704871590202293309639818009081107090108735317734508886325061930637742317171145009218669011697021270189179005179733623624757877467957384368055032886725695830148773352797508852915171278234886386396557492192688420933157979832824739024565335430758547246885332492887003699981562114985921422677264611576507680272259594920360879925861253755923215218764979152489675932530121978971429520217788322368710567044343465485616046090874013789805721446393506111834292565763607119567691067856555781517959306088334874813628309738252374060746853142332347870939511611911271461097741582699963748608331044498847778123516887519733308872912071838728369806729284455093121756594774197719038593901715532391424931556592581293332107742292417300628720377807207516454909414212832920886942640085657838285268576731882097031795469364281877490150987982095282669183618793253017789955708032738873188397785225520538626987501340209188673467681648923432613239794230463389211022553547955937419444221752854440322905594376352727033010343411198797562193101751459754068931550514308317929206553704089761153663464694876786301101257715398707575414011918548993817416324317354879132237706966834424292733463074398708124681253635821620358157535662640806103464427716240977362262880775878496257038165212914423500934264230997784780188925731494772853737918080871706565376768216386393695278609615414876293597649426982078788060920852797035383248702898202675996627711064633041592743950637295141934029579682353789800127161491874341796621050218108904188698536042106220510614368179797192200729602134291087167316531747314878535546100524999732667842490432404841972962239154011100932997561674023149339930137703936571200324031612467950237895962423364718934337004293618052350447458918342315801028751220205775412565437766056717000530396417706073772854148001234466661230580967604844907148762466118425643334706151049321053539179977021353747940853746327560228171319679344360852960793596861853596198196173195904431361854210703693869000359544667613805131227776371375949793133026821847063533121510709148641459308725665267121952053952403037669299019364903009919528683453980045683008085097445451456211863935406744592910984970217387425700498545253415915614952596293283416499140774975853888326382856932990338678666117064427231628324103944662048447557507501805526243190223619144598336377626170573012370175457583263804581619343614215332244386345949142286729116928697128188616942462114116375753748578427313887875122723606534655943782903372322626615929215783915117385613874088032628142444149773194846755445635595465003901119818745106429428835916876124159999184598814512700179370591514275099888805658073532967773685319675864567894411233486824748634736110967674960490202878044004774876956246355997595497471696687492025161200825526654855250226405723069921006177742236390610712350516398629145425580422606950632386205334158948958197691401319187722154236800477806261118619164551004433667098208610893819377985979244495446880214059083263646809831459232994323176613100288056801793377661062571046300169114662907928721327008856585156767294371167594572940577464915821825775755107517367650173676576547233563467481520119292048466367581019847360016543443036867445148663540241791795036935769590492127882650997511665772405777391954336625386833102273143823317586890159571181082093240843172482533065616634052700451745488996613439525532353069107428965073999829389527406396940856557154445556535683549990075110687739272028433809937678496726303585340463833732781415765516580563045096804604179433467776556300229551137728522674150139760700920374205911623887384701370805358403001033031618953774538457415052605218872864037308826358390909146997955309076963031949077011458539892556121648256281486752957169920990381735374588994295434699398395050833741141064039779997872679102443014426158190994451368734586226732917417713832965645803688216618163785014587154897709087366761206361540973012145050877181383494000639839643717381612441821648541637276936833316606778120936299876323654487816638882201443755088929955258692288428760574287961196320973447468862198007850422752811005019574639646943674219509088273656429454557021423616022268688391148324108800040613110165714655263038082320683255489253735374821738927452153192499336245806314104898959973272063151120206287513999509223047244073139884855857942369035196663917041811148608655539471618494629160223992780909997519826850721059538770858572145784235557087050886724295104790181108261262815185014258466032310038776503748276025516986021887449496478871858713595184761102831196217811760035780265449434640258184897095846363946600912689265877691925186507576569596028146455649586349813045210230577125407918796413688523246056201608031013316161273787901329983488135008707651107453062966250277535987305577623494948510507558745000642006057926193555140526324867782328345784387364147260566601370317135772441787283948269978739712707463569769644091753953083682992688880275668038799971042323847933548607593817071168607764685031437872244290184677245411903852428138454833770787764137446412696264318887937126615195755555835354278730434510673642907725368140212689319775103496838556404274387625898498283192934719291219141962792987733523484166752331229090261760123990997230217537058872187512411245756256314150812530400312289575227846030007908589306246027990155280168812513899220063316172068341965072904038038273817446293573793895796452445595828569117059836552099555235832334845980043326052404930969503293783301210401105910353176398829857246169384422743989186500679974483926465893099859034895687607267246828672657650209665146962838975751229183298183882735254591551118458948646642353092703622806655512371380157586534595297551988560200194394393942084577616213347496861674732094337991513904560341750927223835672128091025407777369030833018122299744256804402390731325485346342710117651775858981034866397370875147197388149915090386171492238603366750185552709147040867616585508345407629609311067389537352400103287632839978583983270052683850081092037066260774117669535401545616428917670555425554598166451691702374899160806218332032365756810995528746651666656876256542787296440044388156342276616132081160454385434936592822390921463546477898576686839198612055406527517936551997651689500164605270679057334879251648610092990412706503784042316280081866892053377355972421019926770946688802005905390427421616155000617440216647646925065379995925058885359407649603294959747961358000937831038235637495207667944335268951456616014714871726157642157925187067551757191016536797427626200873958653890713541447822981754507672705294240602872614080564385530141187331339570531587043605885787373631378963413660553436812887359568923129753271385879358082984305102319589511608174062348878335902617262364715598048226685555266010753973282423167915390307640209474897779698238241394621070123066711289795584092116136839237544633232748972971710695381254212475583993568443047208847643032496250822952735907386327056357571594670807634611498613521998158372187507176873009596596822865264735224968576623813147258350006806841165694673720570935948221496766901750129385473723050426117292262970110693334384484629748516490589804861589348045250936062124782482108184407943595637666472038078283497607809718879975298852215367927448756744368408530242833557448338748248970662845169007756791465653754925201007711137496900466325696001924379204619127906570464022431474056521951425719806767203213901084553661713221200936465736588424463242884698028646989020872865408192678814350049615129710265666557761298520691256009895139178157645533020761616925946610094080444433723538069225831576075126722620232155888553451212563472607408114245462408808866044716159792134976884409903230006298930692080378405319839738768709468439238846108337493445283186367303078859876079148665121713088001782770982509745394469708421141247558330398606608896583220775777808090278167301278216549454584209002937010653642826257071513156953670470946420864763972605143621666714151558760456260363057698503333858059267044826784387396218484170693543458853833086555023372279195867253379436178835544688436055292455814202448526624183475116561625211306401708571818113243817732175015599840477080345562065640431133782792162214221286437084215230651717969400101524164080434356104900979341287729552511153381809471305392729556048055602328907127289207530460625723076918685148865125243647261456817437655995889446675439088906708022866606788629279966853876281255687733559465980345145801434215697691312515631177167514058841005728826577607855271240748766933508393127371347537790715829430933876141663775646899342589957106847084439238134265308667158775817691876947185512317962790888026764095757247408509437910936841068632894446744702300544442705979544808584635059949967590112289290141950032020370387744647617351864424094510464679240690041256693142251191993446885890760547733117570004660934668757275125001840674653198214185708924008947686756276583461575054057811642008568431355937706782279677149233745206555282367285132548691940282690779974791083800410156826429770957495457233871114142388246612421642115440827931760553397259496601459666436705101152126899273611075602417115432552000531034349654164816278192606589919744135962383925913565962564243375867385623956038632976352718206086092838392475070733213964911260896430028868876653949508963519939083881469039136071228276970044817805969440197803193771064633188576209592073933908799002319359312337849867122493782477840751058975292471634663000218124391661463985316320543258049580570125095257482888727607618375102614849070989965032768385272924239797183572283256211535682160173483974847226625691427620518011818135229812340674395217761714649827534368703428551776753087684616164361690314785104298472027783095933696391794124936745518969208489604326519363240812966016270026596688229274547368699961762014217709331418857682225354201716227676587963427934325826770046031095982734634428255506791845295228680028764381476309832240828074238826589568022452409684824713118909141031649876354763736718156029732152908535836219624424204543488872236978447351311920844599576193072273562578388417667394284707409142049306547631795747424664845187147663194750233246543673370431583773602036270461134954911077447134424409031808030783667477566186224427657225878531284229187306958246118937394779252331297669392336871543359900304096322300950136154251164490685695425438687709374007465412803139102365618748274266205724838584986308305302771659349913984548550564151390284545067886067654779293317822239554455223623489154526851189637065055761661936888129475002134201857347060936549395846308031543725077466452239595424745614084952140196626906058418272564192167858590581688084916007656036956445249694824511104676130670002847865836079475997985767623831113755615292424976079714852516827604951124659069047663238631607923488600057939555556166205235010137889801472035413774020122625729339064702737065824152253959925527242297142477280258838673298813552208280774616704153460017214895485467118456786712203202322939535470226453716818532316256821159285268625695626168004769153679367710602863867876918606207105009962462102980939592735685158069710681447650966680152305886001758214330959212985926204405963640430936818772159384454977920071090526283726467015527260303091402541103898835354843151731674336639446534830872915370751817922798942321681791708967921744565218288357100594296732453440432258961685431254916981928751380246993436144195988480671863125660926877737434469008806578511608471859821145083356827790238234727499980132329644230291755343901737432207550545297430431914200117642230591658888768583650900515758253456985325294681803792728543117281691523236598376349090534441683381877283460281324615133384253245959292866719729872425859389405553438408120555123871091999177533053048998568654553451281325747580040127976537144686701597651592951284816858817850315980743763472063434035608582535851305696275419197256075959638331658737023520107713250228035300342884051378517357987405980365539012131107271696751776703744396729140026346468932410047513100898623425614374828306977392444570234738991191710370502567894695868535191832275702797421819121407420668897585321436998150654130884992312483797517407946461714912851838860616928849812007634438052815578747018117059995942741574351933504737397248455373999946853173729270351014574673260167389383222580334776527403171662771445364882881605467356961608300314159303130282447310248433688580265131299948423932571197968222420200754726946958728126049934241222761076292445179065297302967624922477440691021322811243195346748475299596050100352703791518958313359256397425253834338018517193174128708058219051439789434086507083716451743381801069073312364734075121625874191045215541421674488767227085324391125467381182675853092637621615661205233494313638219262555800858522939682473555038634555277353303814642670981611926804931927846010856580028883326866209560426435766720380998226040516719931919899037702650845584514673914396141286898966345683827982356781341861093469248430768344445447448730618180170144463697505032242092695290047395602183606439372370020235798051882720723121320562745376675255113214854369207499020663774516223908199227835650263284277035700815097667849966223996538873349364670169688762721746620973596252220686636160112607204378118324840730366961422853326926856626148856419135514618291215885733433236623988068453124316065589495354651236891955248232751243496292696115855707751460535520889786838394898810173269168441381493911071868501946365245609414852229501628863844652193532325861599092832941161293859741140604004875692143308039359999275111252052326399042338093032373553966457982873704174424491191985923231300509620449595167013433858223096234002369261319633038940291529445768739030381063655799360388521394703194077597774667041268433951588204187971967610583072653025189940265595730556004985318233100673582505324383925942656996182927906210703979409410146191631766577770371671923863563194552982407545603242601889291195765657968948071265490337713597544212340825216568826725315843866360219769733352826902468887853296331743035071369999195999959215005716001774064947295172817387387755296437269896978535236237139959224318430822031363223570101625075801585110664489557048637053813218321242974156597400360799639584581777181851215063462032962700402217473118797179832705887202710136415356087107531613873045678681988402758888707745059651138569966091195021225407081660317014934267691357742612483841248143996222860034643828685558556168088377245858507780178489101985514564791904638885688571828569358149276365286710325086040347940247678821479714333718866592310902815696270959153017118755396876758428467532995487826221782517881687660992741664840619632273344111884940867163630379790228858283062945863447976070968771767805091314114289887757945752701176325637138091122284551684196751734858021195006438830353032252987389124122681771117446698265668608413485360561687071295022222451387841277719363415520002988451394095682475113884097598277053073587908392775323952811685049174508336885002418193913407247792083379925585009413601595002257543770340990850063957556243331114898749544206965316452847897168024043104573611747954236998188866265979252791355350721411773737685673749820598712007753678416869864384208636652328394401452944861633275862441362441020469136186486615141556393176044614933206639880662641959598717598573771273292420035583959664433430317307140903038298472527910456041644121403531628211944923436599707951658192784076320339317120392370636698285853680686356488363531054172254478061350382529189649626802500291546563248268652492573950692067367100586861872917183862212484056382842792259698781641084225884490929895714570289365786617916061376691136841839121493630654018369748672554745887752065969126875913625131349030415528477073847915405968629136146097994708595967373887491522308197101796283996313140320946105098846679894475200248507200934235696009225453213152434592079999265217352105636514023482917148041128309602463660871555976455718083718026972118272641047830765269366976438740574156059560291395641256964648042169813453016019284333010161845362738160685890436471795492087995058134564244490365272237896106663376611417385006690250060355153437531586505722693232147468709602088221461176456274186994647055602258781511322343292177502960631065780763957400370951511781026105535390351493618610577955871872258316990829560228350565499050679433558579898975377467469423342916856194139378687037126309689717891969774799302048064783248870677484121107996439561179489100900715085805606063403649948989712895343073076281447790797444737409702307068143541276949076814977422766715177074893351202001551200573741820277146686048936754862331159384056380849783902123228045815825523913253287695297355062319415989235451832390603294623672300000045428547090838234054568358258111972788103642856673898125913109139705782975396503129330962533544872381463738532341155009840353225063352712004460475015392983071326708260055023808768463544860621393518778907886523099039870122456053755909032412498832239099858321466993900754155990298261943566115049961540584858621629151321031444561721746257960562706280113450215207774643158138794992637540734945156826310368749295097904345396290852872190251515508294097847051489566739404037364025709801070266464587305424335782420549548889783846045176012313478547555260215387674681664103888793829122305192860662868915501662405760310777060856277629760519260825629561790060678972137684204746059368504966907262366040242986471737276665019428788344668586344462380782389653937236238737109014633798201147128913530044836345021976867051608741927650573440824757537572559050091736904982834281223505518346222460712177802952156665596792443847340122768437648871319714760787803076135918694861007283615890452298097116263243082677426375524355475814165567653621615324791185811082600647615233263726602589981503036911325103519413280581716991087575976627030583297654602345210552057631862098802681487343844712060504064878811931110397033280555641610423059015231284835336170509116037374371875802875414515368850459962542651702726387434784825532392167299509680571796588824680500984660177663272547958417049593928670702365414091147063596871970967420964929061780309818553654063135440784241427482533942044260113728032222480081034052349705229486107189865619864832749339126673944055020179068735956488774163798967995583692045463861382818843077050890479924564739699153407268219596052083809350303049449842699548132737005978627936613084531400005906828993736424662510815069618249960960381088545487559389283624113128164547966817370891605515596008942437181212353685461835617236932702390062318815679450912983812585412786975930023837028660950306673010246372451997177346901546875852045839144709142247576426748768218950576779774048490136804709275158385834449599676035676373547923981609432704757877328391271215517759045158221005218335710436720342551805537852224708800523138967097642266053217415375038757537339623039195584266790171006476789680625881895764178106290977276981030334285836328951231784343608893612803491046417371580674309118309147536825933843383445523635422598122361841872519385914017476158859978702761448151706215722458190938047127440807478777570327050892417611027319096538381660352220408918094628555456770124412334831188837900042180309792867127587066806027858361576880846608028545594999226165908823853497470400487264053016872883979386274225811850368960923149350266774358353770445046776676965158027702692803575252515918755203386969132301328875533288130805595743509763012579961146828854777178858139064914767659249889706620804672005830697100593048597959430648210379082954030970021459117397982584646675280496605880077563532453044851482286770607081268145751073081610951993196566138944401485935147111311087613717396842616004946558944158473498427201187044889365956056897590871956770962905395748307394300817368061460262952508269732071404633410478449641261788812821824819658382724492932147010350097407554559994917466779477482992857051719113903916343490875815609521237256877814561757550196197336265455749145295769688053769727553424472064171070629362878561531995875802221683931378069606413349384877442803367946633253415413589291488694914337779807418047294846550020905912840202315175364796831799379890644506768049504965517127045378268662979778470276028732566040044784000474970286295978575554245069832318904421542236593442827332911594816193236509474875713412740745264156569226690070833663688431364791978691889644040928059874511929746239935681210406904075169836545965937723471877080402073215186866101110435495994733794613869104561351433830548194089773603009129434449102019744182275674339589218485496791197007756820887987417232982008232869468861034813283090628519906271974747933269785393200938147757013485637567169946754539970018292024266931824336532702293952210833538748840994999332641371554215094621097940568924325987996610067283086312219577764814555111278135785352051179059746984540333835523197073244714788405979224737649055003793766264097507645196367957654869275718199395475473255770470588403651348590826355473315295705313826142706508594725942825194276930333541072125706681724317462829532291772530581548524619381818955788172002483868397189716073093481728045573861217332653779505544698808708108186558435356940048070703662989687988131827552634359186892673067718600501774421731105530516669468887578619357994619185605274361524537978583188603384905943709834269494246955606150538681671195194889464005722951390060248687117783315382657815925208375754596172118676834171381960676636947469289011463879033620044637411394165250055953005031228830326030452241463429961406255766923148707825004290039506203088233328541827800242268240835957063756351510417356801578880404324345558121365797393284066720451183907816014554544706289197377375579779548590196343547456076031756557857518195952929491863181674112963021318553524915939903168213605829666018640251319932246978840624064928873718494824670605259797900858265948792961526337546557687826731911572771645315460769477721077558071690298321703680099169282335203331426556642684775236732756091055400855283146099763369140230593657333467689018181378549693114252809245619262239902589548770298345090452985290423669537478578594359790436324004568337929671128613587778955476561691972599025132245246037302350280066136298453479979236138544163112159629787562934774513006870989688181346008541654115609688972603420555196817611009473544798403500677651738218700559219583792523270199173702602328213950694612790359718723158565498842204248213899047211080347138998300838032446332491518299823401382333285007950139991579554279244336623375225200038386403705048553607622895562164605629301320808959958899408665983532330612422470395423075403516606213012892411215474469301856987987053523772279532204044326887054340341557296783079204355011019483073911378344829102278086428394738370336782713854965182711651602274738652832312167861195687142152820463572109909693108613533746536495373880778553023774397403668163497646970652539356867124267274389893937752314077347329407923838018427403607753325000855435155550779956010285843992942567694912002743505505556410288969146928080503217825143457521460340567588817088275097948328601726403524883787719340111403709627864348411894273856439592864282877602073895789670390302861921219471362861687559747441823028579362931853407635633241641108982224944404769806566924413250008747216038394581327770599721433210003295444169890622238326576014371705919489033429841329610683736245781351121832179339150437304337709082632445129328268009485429126271672268513140856328815392280219182674693753564079345846301387068390210544243301613926725956451898792539497858162453355487142757163988390991267049024466546158406346666217332889705809204285073669197035650306550401351153714951973876255818477655574257455352027655013262058368118258410186089192172143552344653306222826282868416456742828019771452993545488091610012210358671233734269236769572504539121020543676724932053345978332255248878199426933087060898217134225215687087911866913903359877139474489692975985343921155133520270071397273454505381108126598390549791191804015294564577279176468782029084538240427104654599898463522073981620200258877564783671971857383112193376857436560675129430212326878616110548416169854716034611160329074806176737917310000667575000542201621445900999384722136173014954707060607030736297196102415007436546220407994042095430904024982473972208218811824330970524016202154898315865139620509770898496449631792189158056559568066113410498079900674071646103722211555732651356076710013018817518586335189109529769979860110290785661401778426143474263017754025461249372402818269227005776206451396069957365270997326978198339452047498502856373164417737990604848520898058260125350403530090401146930163935011296134932259132335158876111971675480080463798125907237957242356311489323167417012617911490099651736054325625146382158354899795402993022430589125447531994779259006321865332568814633500352015825871248193208270537629518241521510827918233972087403929964334501784953845061671441563127697153574042792886110124266786625489112627586514635315660885018965170342505927784826653484884067426269127488151854512500357949810555536286795575924100602636367900721599411343788748820092187034832335126652740685619691985481457820217344615887024862157692774615089553403144435029929244904045747665101642997076040065910482954460260984411000887638903714622834928295769053289943987348896350876266934548583084928336114537316913940957782636336204672966904781275685765960768978537268130632444145197586073359654976437372122778142428438269259394811510270842100203911227997834307573847957775702625507997125458554842667490169044316386540132064934393757348122047323209748077600507624690521253976537372325008309519572167294293176002376499474070523712215377740260295735281589162265857793237694815256161341239288299835288315113891106566166255315758280081966756911192566157506027131460139644271474220103736478566693282489116504641579983687476688054091068987038728653018612862069470551687420769018895858221779130711836033781226617364341098575798713473278300929831476471791836255286608318410624027684115921523038406168372886696686509273974206072041807463394139643557273032238835207470964771441569710333938493942872154561619989550684270683764648413931119114326789757994381821597505934990967759680306996865061515103159353124215025904674409481362646117312453016213980687994611686208432080040835771953931327917838516627602133515752937814630811453734251032930981395971819265652971205541825908794350134065817211417918677767377228141958369968085517647864595912573120525816033973440073669229072177310770224570938932271586854857637217623478048573407055938377019738174415035701086980503987017199522299400311643947332205611296069798562386860392356927190024800972698802653289544590743492972400818938630134400605789757049578515821149830782748720272269680705971112396244674654939975517047813659328319430050572151390830677880257753501722641378163574940770794146612772552976442806376081806619418636998938030365620724774729369331591707616316718577636591747846839167246466679804339786880264540202251736939322898334665752782769048876805278803297354145214699015073436431909059538309237741963608269667035420812050318046872174728132222149604066971475134311217618301685247873098497677958129707924594026123161514905942059119295331166781828350465187687862879022119115564127062219361264601975402056985994137017476340298974200173413061568353151144586387072007492706903995018385364395661937276489542088969530764308089051795001134449834105569662333823547254719567723033009341260795406945331926669360930031795903819727573676473432453379602737766202950155752712920477773835892611029759126253196848344476585712687261245287948464004964311050840624398707327594514054665634507781638890754628080138812772905707252526651522198654852931753659550182803512468568724522630402983312095708739750143233690608680488001600695493564526075945425281893904674253630342404930872387091914426230041030488502557641071611382999098477705691646784672679576708487478726665468036197536722904553469100656647064919079030605390630770368589223123320062400707956859281640207638092602334996726158194730884527041090407779262113741830155100836159003037656287169311912722078121423239164535824022712908155100404681737012021041323345421766672695034531065705406201629501688452324725380234498530984014671601849144457397287330934533365251153738695628539026987720377754096441699052403662826564287124693662921116412176962893901465645018311514261610997788113021897145884918431047457795807522354687390101399285953131550195170280923960775754893520309195612145758543342040644785882981031736173200373548366402081913860019381625855424456293367505363043711254905979002644344573887065705367326957439952391781925876850770695160322769364919387547721138783156748252611492617695198282139885120089084222326523016200920101411236798031366699319494092127799604270014911060538856751199316793031624504055541209983146659856600169309346462623327505844546661932814792293069070161287452586792823108544738031859877403359866671220419354218846011784312750614108246119030661536868136552028876635805021892584152581628856340592651018771517032720280220635211251683736676386575467872827277812747183568651544687003833948867149117067496684403986471150795977599381117938272780968500552147185280185037124475027010176432876380220546744243582697187304930702362160975503365341969010544601327461720147569462581489517830350136348527900019078330545569644309361695772831703951153112071592218812542027653316271728294333841610002454379632253641932749584145018924420334899823994902928902798803308623997230472731503501385317410789811917242738604038064058441850034562224660302620764565347727874938775810923778134277863667496993244258568382589146803865665721385202741231048673428715106542088093499049691636554462105656739750529985796385465034070537525987653057009151348349195982238594262824823592388329165694561799402354689779073175228442832904461148240914451359199848354718475300354661894773526628753600978608959524067901653930653189507435164499408064449231587909444641092506402405431895136291445764025111673754862731969393463092233225296221826134588239449733293331149443987351027317430206992551280702171115144930604466123749270616357281469519131687834911255972935508478634633250962591231776899907425437249060551024463872839920564462846618766317929844309554795892654107372860316883872318126963417762183112499544456713111709004777980732385534269718119628259241670065698273238476604155838320592829156062210008261795458871190450165733889473167912157954824611426411712850365409583542080040672499100292668287540940888614276065729203871078813598091773375716180802672866053166913863815847332742989521664414109184041459875770206704804197059812685288318568109833038795934782826440824268226150563090911347862482716960668565067480061589623922634210550372209992289978788618329843219437599008229754560987640455800464415386026645371758289033446830340300525511590125706038879308020215533642651624922172340826894589492429442816963610567853415670090973196626470413135667030184032078203885510409104649230512483656743541655351289828658193933112805038268978415338464875457374727590024706489696040216962720893303731810776677031395978743614294359242553863411348420301065907085003439872381555306700323674405284519045594672584809209763022332389284934677860869740968528992683565897418668942406766829671182555853711080947690624578930683619080345192280876450791546941723407253270678785388705390874843901042356843084793793016450682196642388344530564861997483372829305576540271397972157665481509132077877414667633088995096504552765411541607449865904156827216263745255135296723913280816111229729794961202399488420456284645174044645547813214701049031841310280118692709244756973131154286669400322845192046656382778648021014133511855356823484226152555019064270361601920468598691306671900227214337252223670810290309193577722186011680720999866541995990182637228898546391651945106444407768267095617427592122438861451953919233975492671961075598081920960023571445973242015488562654420022606891998789335990297186798159909512922767712019105016858953204697642619712930522630451355045552124448946694963862967182375718300607297404032187575769144912812573302793608543736542375294289335466984871820052396619928278551282118943539115464546482666773229807953010878009982143740335545454641336211919090717296288777445410732043166173399332667744376759107065348088800186419717563687008205247245659816445679691221808808076685493528000825257131745109858570870844382596876452433746301243630185330947059064660954672338177055432864306873543149866459529395165718953001553017865154035327534854612163136587163735446339016973609070924767388900971748220787116846658058208790465519729023567546059314075351711899723455774254130605902498640587071530401770966900920012936134884993312354126488485876941401851242726402635298549809620576314817305541578910871867041989111299793861405131370508918987497430324998157370924843867026294429488787515881384507592892701741205538907993258784697113518594625806236447573659176463158281156528154398722254393276212675395648699642061333158169436671628112760821940810507156811242398593481518460501915163171979177028552657064007130003286170874268994605942706692516969076021326644999598240993847116623270370698121357097047705388519424858856844971539856784774087758607303004565290511534477903775647243391816584146433037751182990268726576427225274250868779993590518262018450571011738157962606256563568556283364883374463585695016144883828302496810825545330094120814910906308021830506915756524478622749200914446842238032385563684757154896910281941960258145508342770951625667937522648184714777559129661248505322609069893093888547681600017739963800666994905353937909025536817762930951782186543384607706444652067593753875716778718420259707846420843383748344449702354933736034884001268799408209493060407624418955587052082501142632766602419774318533227909533901599497942136097704344613885824359540727493929750118850754991241594022229167318395062300010257253289675841120123617381663750953610389876846478228452284180305373692959004482892971850210633884561808577334000234994970912132671313841472016073081723423649943826220286973498237639296676918590391747517491269714981013406728824226113174989331413495653101181914069216747265822427175103566596802556611221302755759928190808922495164707061078783405153451490520437556667284130519753711983683128824062652937652678449443818144346770914759477016670471279790793542753200113595756485698074583478392290215816274618609195110220406266733068947117030159913880635092122281249098195671305064240783457429605578049855628876023288905159192968254710251066143773249384569321098785984611103567386509365457619265264054250995491620914453664739111030785393466622797097408710365373024666910063245434205062446193491420472554305653548723553140317376182793114828252259476117087771471639225075734310055019862106709677259076505433965123643063635179526961729630581562542201798830687059624869250295597755297246567198755342564653024434974642766572060240360673873946281743450113165198611400244803290876701141124645448814312784031135708858742063861673694628492322691263170091984795642739313822367001196272408918503779579674684959084734553985204229824908171362818287915364184241966274813633056880809661299691995951034443655190316035181832943679135573287498631405952169701390918224186803808134444189274679221739023266860918395064810921551250029320014144610999241459237207072135730559827322298587233997045919739325332446058015621306075904795163362563048744258206811165149793778641001464150657248142621090231578959337479304013905744678835915941235731072050705153550422502623061295555934644390118822164355492341197213844219465447435697065787905898646659612592965773319129735164511008552107160335112242571052946223844726974299899340282964509331664301491979791323710338907734769888329973794870545703899752102013263660897336711124997539400161943699931255567848012079896847069758770463693496183119668564167416736804818355466715171489296339918540008386339683014575673820392453127068828837166873380307919478008961640379075530442454353519235946650477731666635751281488844503115320403113625863146970586314441959706059561688988699798732345404965366534066760733695247393130113568753999143623323834761051069597100778820714534917028211111421723237353957931937520679345170791032045904667816298072955711967363169864534363041631373157045454072298749709436852401048787742585867957506572536869712764580048682631507282208745987445582558594841370869910357057794236820704697692928864377627427664090463544976219420296657303551403509164150221516484848184033841290925540083500088788007796552807968177171367723835814408387026479532919397144019628691210897024052274334453932554751939259879686806746246545332524741815077212851985866919293390627782364550536703856121554402308405656236205340352853226027015142532178036027331101071276693788998252765583109311520286686864573014608082731357155194907358732643760279361919590762002605541623249719555865875969905005871573199902257662550104386756191756935413793069345013105001047195077258599178596953424072235005930812925613191054212907729096118020349517965287098016733031211859033656971483729735550796753226529852575730202359031945134779681372407965725897715785220287810701872319899147524273340836190237722295515469312590019950621161250607541109202300110211847124902304809970623658091794365861823497725942885509850178478779370918666780009962885859382010491235156372193687505534378380147340634904164816295179455226618364719530163535622977819637198733753759374801029700651248450114883047709735369824860371569584645508956963184628385244482602882415416138527104088350267837169751414238150599185136435620566933461734651997648481717948362329001860780148697335343573021499584074657415030003560525566756644117336101486814360873926735788113100561773847512370663114964930168417093625257050849544353636752160460430560493317622159551623680708112452676125473222622037685362864126731926334105748610750653027550582122317993267188691963391438674080302396527987226139161343873979779593446280514339459070128050044836452749723876331171932514316223669513991648384308256240121087583123254339881058725531196187479870270231543540259371303489584476526263928961516980165823519768322938422187640530982243406105490054285054237898931215670033047162757587802911323272699325548360568847401494931107340836082078149598258904787943770967826602227228644988806878497235590925264051619427101189474711214767291939585855738483593164696453574170307409729482557949496333146976650174460498077869021677791443829305048760811350728766499350291927063698941333448724989779233239289937387675151078656415758823149020844987182807322681819931646738553456848716861288405946386175208026900727403188235031002844411853166015289481786567365797138485620573278668969532824796963218710340420531209470112588390447477960818270863964236280779968697475042054948026539632478006642687959808162203672607651032715790608778490224931076000195990771318390054774502447713066041615410417504505581778509367996608115260600353876970835180931077652136814705718079166084265286887432291603297179837573068596634200513875356677819217466189392044000276616418360254576772703412035337887448038716457356509127895361714240369673895754709187835046639498708873079040072852124249447784127544512420619595372414855682562582420218273395153924229122165628558032249820090252442811313507293895393712976250582839032494558171748397138868819123166004901510493203530890819306010494115792838337205773245237050848602937184313013606621186731091841062010539734555194642400826997118225216413752649992832747607609970717019462995828824264498473869034865275673368421503395373983952649818214980630962744713012142969811288221252624587390344444042872149850259133665340971662134214336885287816381767580344638250416939950638617546246043393037410752843655342020079522015286886969045368964034255390354019373030337550297817213369781476068172579093875337939094196434727781619689968680867334918732235746055282039873823065260388743261289297013761400738070318945509211544536753372718496305438164200137974364193988568339415832133420123946720505710645911628388610814549555867964078732747544169553158845704489067133958454304909406573403117345677581945264889458590539235483248137591297832411811330319491188159979605665191945202333800425647014060190597697746772725846914191102103960480524222924093365568446748039513642792527819856457413064243703634745453376586396223973064665503671076174500639697031572876263213241710292419834839007697696915962179962977823308794112664112494626992026696456530264444951804573428691507994896952506470003912829260066553752824594051193402556118417760611533377549925726891267480956917999268659506970260069918047895149791025673211813612642588437714439082074351901855806819508288349306597498436374858454444434153933959467110000690764197400019663172811787358886391927194929827726317463103431135019280966957441415485418879464050709604655284197863951095632919189193853714133713760972415582105591477626163565298479303416056099880255114554852908844112029277334651863283456867328408827509831704605537042807058285932375894266570747623554784109108590751174912586258070070356349339238232999856864123014712949434776698796735153842474326466527990358267197240228589430027239847540113259964742779746072322633549576950752438802697612259590985217490656536401636520775999811123227374643980018131753641976507300455329960023525775309593609441673266710118949825657635512230608826407813200401663769630381211430887015659311635763648295207697506680381591926921376268369039449289092459496845298860159367523013402849681873323635954259159218900429260087129185527404110213860555766489902124557331213567231108849911466751954521916062356063074573531964061206899491675130878666055868111958215198031709166241395080016009124827508111275391124366437837052270861329562915590049184981053601195931524066840084899286277489945197366001963618027494024269166390552318170043035484503629090025055770169310573114917967653594682316789503060017751780420336111317201116867438485812463447385280750319209207261053616499477535642009053302937285324547100837636285640249256019888316151765016268836269617705203286413453031867504965686021325375858490759307930770360681952789869689422246694598582659849119615067400441462961510959186355934326874405042089585503113516404325614716149750330092124609610407928745966581610861187176374966064926881936740924131555644758887818951354302879062833756448080790934808173756573136856345206041576599179426091750728668043619585336617210167622011035154275332465841037169147314256455277026837677102279966783769105056140354680435693034999488278290524641298612877616163025984264990405447819041515966754929842266653712081239040019137258464948330666799098086303183473780505132480895971292224309910954632948632140624674602588713004191991038925439008263182494730288175092772014142263294637095930358188715967477363896417423549443038988674492810187932752731920444393794956705683137512676691178013335971811089306112414526052715368742476307045302413715419159020529499557089764591441856922957369471677404871008408472122709517595307645283635448997232877534413302732082633059604711035604879092009258207547279465749177214934684415187406062473191535322839273928343850282065316668038919117789744623151163586262942469764862059803561133193047421377532934963158861331533141524903599538982044055099251228905610807300830509493496807702419521442744924623513739437626234693133732915275277253914175703094976426754673563810934394521013416562861835068059465889249941729848222924865446735750764911333003323344709160286910622307408726366405218256951479485817744501212304676802429048178711638300394602902786369066420444470734456168910680757781895264945335583247808856521030222455909500215352840257748085645317427975225509439635283900259539640587369512665267389461555595611576717135396502225278649171736291986700563171280424945679820289437412148499210191678330036467329554389308069499107351506653741761080157204954377051574931688987396152858985405350174761557906534426036459772127927866855437625331818254440889380278664515220886690285381369626891051979808275269985820564374003321255420006516408641608285321617216072484723753890571606745834965961847970702872488171034157000112351900337995380590084218253842586912436378913422503653910598359091505748625226049764030093179468147013093698326865021484193923899616310988598001401510153943463920768290269931472804812850857675708890495908105018017677786457172480050045857748751492759732576120099942437025194796942622017277135650847620256866809602329852287123949240554309634184078114606645588274218562430715044857914163064472617108731143863714198039904980962564829080730721726005333369275909193954806721154825851770985073873806594372955803130626517134711638452254779510733326369525334322077294512756319677272152306235224291622455284113643956665512062234906954734292827193843287486249217325806496597439765568313580793018417673614027943467082272931238210401844588758249839369701792047757817694525301678830373083379762036007841567711952640099591738440214671627024279988622038035680062535244721714775819075653770504030571613601945044919269938102672532035696899108720093430230887493749409517252109994702275050547004527413673394251607840189278016216987084446425801116984557018522977803254974452012277361503914038345830650942380172768504878120102768996795360138903467172390530566210844593208925759071225542544722906802808501557679678730411082900896384016066174621906417411095558008617142438865278276645759247798912782615848408448965808530467389180892796309872398182213672599649260073600907094111532588645315624153376910880935369429262296651997309341410055027440014320500544486747447422242617496800433415185027768401515033843833591096457823461104755574337048024098303817433079522935718172231146680037811639116330425284567221230396547581324250095734791888980902449528754082563587463267615162905987251878042684817745701126708180340514710523714608741879136645566088309510757852578387648828684037732546732101207700795504275499846782574473614642710440458006718273877023015547759545189872721924644998828354704412600968201965095529989061292627039260764939979964843908369381997744122624023198151414017229942897327428635361722594311665959417670279980357123543828827386108582119201053931678381736188887103239508607236372175984876968422103117917531761303955732272052412801407128537292413504164018342355538249584801471786510612374625301350485616705602688178660301707655915907140341859273320580548092785050848061264186101125898452042403190393426597357385533743935477272782086076681547911175915729932235623019946423923848819531203936863140696268970663488421644019206647375874672228099906022468051059408581345440576895537298817667684415435011118457906883696761141971647197514047742393188713318889838252328220885137602886561569417235152650189142058310502310410844794879396113053814208457295611397783988137323048857606099463620947076918514424400683144112532970894864825375056779910180912851220770196283186520392381885038140088717715500598613612225019102102304465577600781666346461603413764025672925419826312180733581911865579428280128723619621141023371785249400667893169750358078638240294576878646644024982464649998624451761551665961605865087855917972798469650763666812992701427594620843843982034359388974925935048041968726029390398566301978239313868211074016347548227921199642327359890897267187393914385880084431255024349944586365668420625860761895729023973239375854554329352526866559036327750008872797528132460354844195809840927177817393184842791111456544750271800947030376540572205305308338713842929033033793386266343639677656382960638308493896782626787273067638935230614719036184259094997279899791484639025365566278514904243007508493716635181907687568834219780045092240464855330353439930983503811653093891588513051241974685139669370066264700403178532491296334740676017337874261482187653929586776457398582154786146002771312760301309367862495622957700424115230641615409710775113176661909614217325126594294799135757645465595415064555859248104345262960019479970425276576979041286003082481032810899147623990987948506165485315453163531560215037777999041881190246635101431974329226403135258414805673928534132858017011908640547882063269148064272141388976197033282702621294959953198005591475016508183700190061272682813980534325696708473954272464540429500967938485461846932793138390581857080238789914701870144164211219648322593997848409445128473313529241252787740804185828895170421581152511172023456809530608578701224391458041825216663364409185283144156414299439323657505479255566741837347427081788157635730635381268296123787061297847987359402160300062583688383867987727521849401244320248851296766072185596602131737639369780204061155092398463265631033665022245569117594345510534289713023470694252235540656988965144302566430842155245765334960278067733278652145493178415751373675481818760893286069235462883928248854738959821923175229540564008905391221915154856037916318451047567566486965203106036013547185286926412281503207706268956799223575849010279621129108793864719027605236692306524333691230683705424397453104605133172669979576159292728573149091257462088313806979171900097137782385461926148419585204802956016913580078538292944348961574742903370078919409055212928215548769636801697864186185999877784290060790097973236775165299896537066782692834170536352660355821702718211006698535042414365304874115025483885713207497953882357391989644444009352419778139296157968773842110693288205700676216399293355997536503575494654319809009445199489668638701084019770043722495940308189011482246089379962090426730823444559465907296862052757260004425182302179404438044797171045421596910022772561397258343513531693711695620519290097463777300663366543538714814505252221522229338999739905280928414795356563296439596988301503798681915955405283631024293637838310655074366062198277357328238137196829409509864885949048349796688264212517724577342533456267377182612536357933980604653572630500035618340605433304853123249360492510060435985969312901754444114252836048402263301400281490284922146089734245947445763186041699400432595757080504340066346950703160940062969392660857713927155237178044274321011651211920356587033757260505716241719966467376007031997742641890965342020913701026619848155151784762497537236007742463688978364263146851121930475465242063058514328682091865658109503183943392340415710153868612892483806841418520970083934621176111049983418363276415226161604095666437797362121288118804073338996921532599982982283120094310259253901066585121786356529672254210079038320760430054265163107951376666503490940267745916790757714159767736716204844400727830495423444577805989312067405559269176089739227907587353537850416361180714666579280791678389489561563083103865892857975873053550202494931116684172449513834178879907521538900754348043127903556366824123025794159492836145709221729561108779715614604936072727502499711073163678305764635057806537711617310108222246845919722845695565006856823546302278763961460638518538907635279501334177880384226019678803055763661978035762144428764295628833275036878810008304241360631800285907266723930795648445991157594383554994283578488832736233929030087640540518949825190523809225778198991916449107765692241869417519399275218454955903428610740116889519954580675110053408675921379842639918725834938425663364856679775780441100928276911285879134554149818722270999963710816094301134883928905026939609606435255877697417873878954265392014112025193987439832968887029372270865040104122103785120196576270538470831181238923165172050635148619632694324790584433532216749795985872045996582685006571548972046778959855076800637915483966789001456931375229509140064349920359469915921528900245977124984027980381004196791510133373837678039277553286519146570661599892949169210519289877760694699808539882065690175900723815991729037151703764739318008179370552795196111222195285002980619285013818586703390420907204096808687910619076477950086186167736271354165530239907769041577393422557334645826689738064871539302342848239555579437318536486905390972052232354490649072546499402327341276869298844285850518819519290377827273032955587547399248071665015320857954194152389884006568535478293394320176142468893442802835793365316823138049577046519324319243400588281045160158092519514278367219325904838722726962379719379588891447550270233799701396906399008304652958642904796278491272832490355823821578126753608486958343244739308639182783999662985555281971066314972812459016783392323370606053536617458225244509093257686310924713072489535084150789389877330299248352408579859860579093776990999383964039434236886274827483915502502260021490598853698295497120346034514999135464403057315460513205675266505051714809896394804952813370008442305690044904711511162042606161304047967260331001636561406333136093909595884005513810299090339408119688340170575063455248318088604587998144895603002223448177076445017173333355170223839972810098467934748457649586101806139605349628451926868027847188939193830008561793620256501901830167183925492765837361829096819773806637382744391024660371060672806450406285708900874367477655201626452067845604357702659555001901754830666577509687921720434231293634978167850459339291256769309449890044427150077390552894932284404342230747389987115086135029296136808214530068541229249280108030357766335440545838836982800338887251490981407694724491285865259255052702130909238972875060846172968477924695959886821268712925978711036102957673572644305305990846818207640411602627180960240666311315905910208475348115881290687827956774240481779522381073191732877059472161894418609836417337281761076325689329383281306151722775579913561242332581115827758024230506296495576442882421315504744244436742828542088280036589902717895773590997309146976644721388514187477677295020447636249257504404291424243251382945891308609615973896684000565032824118177988831977979775276595455594044099366761384567038122734549099084004302468967375521529539243438397412534572036529597046278203893738641460544688169830838874590813859812778675240706945534090869815191043261180624634537577745301184036450535401729507593926847147242090533851951204335343767621623287974214612148188284777744478459638813458257144007050133834718390597322823788803614638047173381875894571622657794408845176951014245118034310164252757261023734177747135443904534336686389334877570249255446053721384232160278654283596037961772087714612700921852344424602910809100561202986049566772909612770740487132567214586981703931893374171042925214593981261816055966996997614400533830242800763598746109584104663475681654066781722678338159093362989559721462166344991611994956479329098495133811566083895817012668050206081076519417958028951101562793289817540760510208781452745189039853513855697692208232479673889197245522812686962248609756926663600128274646518105365811868370824154119957926449451682162292188673520999887246490163623168925105030252315804290394384168683416270670148452960626575907868127624165890422760508257489616212875873010711387543331031040059007365024277570230409463689041425704910797586383711979961273202412253703102729330546666150455870633867828955111141180432447488320444998849101691782596637545111365997781396228391020936982820422279612866807306237229265890657955022181876951693200956726147040194545415683169063466872817149873935521474855576823054510199265230804000232289647123683896371711360311959031433225508640766679994920846957807410026129428910744809867192666552027654106807271463848365679782178424518574099402437904155966323775846580182802230430362135043156797256621536232598037147786871021996223368786052135414904392235633894091707090392930869137572147182262963273051232354097508621470213375252295106074175407370600199122089948022498082557848501107215605928512276946028264769956384201332066269780906336272576565280974881597461440520521693925195691120190283610337099748886840455695318892335845384483531198570572079799452556084145882905615087540538097963617597446176603079314227175044335831991880586635397635335796841265744601955481525214864761657998057096196435182651835333277779662430223918239106902883639209274457994500036962733909841369109017760553056995817320923699230398474473037873445155740964901406025275275964983388103029226489602109386269667764314022124371247006131735944895109065676361659018545565654345736603811333335769867042559996196725286104762889628146886797929659022216974407398448870865782265919416522742414364313161002483225402910813766133709296856357008226210988097619754644666938594787411761889144679034587795849672452556319743987002900051425711810590547074940569546164057861669623555599311078579223688660252442255229163658845541477875443994159102674556996841019057965614006083204753428353558322147319491432688188193182576557176085575008981662027059449196115352067175196648873874222820353552228663859152991756244628184878583112269042446420885750345237093306974544168055097740907685581628450323397501003747402340685346596482375849558686527465771468839341949473736031225353714186619613310808083856801877292457132867735274659133825900399599725279319549789895311331570410096034561786401340662088207002295867805773948050744052731578567478326180914666895368375213023600983566333313180976914910919813732077241372117073486933155245676240471454133800328468360554443507463478424172126450333750082016411760884343862781663025935228041772688625952428421633211783113567378225362452233256225861623570591053938272397093896773637642519662528308564600036597923201829469596950923137757273726586802321287379475656791371518642130273509508321344101373467259712379627091595049757974759661500298912431772146764704608866526253984970466531980842529539942425787605376652628918729310737061080775804351216996899498345642977305457570254198872075516927891468929228628744452188559852787359451419754793165115694890856594473152504040182978204534562068687245392003607631202344549310348231104778603914099981196395574614738774498219662818170299225773201272157152896623178251195312324385354749739172361850708951522077660365753098945418965721885154533860765309121462889089336205023029599328141481299275134795518737676985347549493145784785285153949494899188774130007848888464107099856765794447569689994532830825691699801330085161874656387071338091027576246247265976175141774093285994328491254029374814671633622499046005488489345835828849670268094217835567380987882022701093378926803038308627818095308411982164875833100726704511360843623261989889344598042573255153038798773931587802747758015293413583260575661624852348217504988315955906689379266248107382205558048521072207915438965931287812478031990671079218912425386782628921625167299945039600982366252434394020327944046992035665258472411786750109220896779550681509840338165139265659158504408773359008943184641331748620129650785715336165819804139944907971449675191428328333311084764701574179669902940174615519456090625418198385572006688653600458759430276839605631895089370192460464498820840187731783678357472621163269233692825463310987931236609023472673681367314689431135389038570058865914135055320477309960556662955176158633859619013717602594215392093394568643132000271385695719526815430517618618455007068017075463449922400102322597673086536136081750311857534203667343194599500756136992208539019865617587071553752682070298193033847115981643456735746782485286179651290799067280989056582956230696547256010871407023591372912614060542641293673589814408880576250521059098799501362794300683111042927424453864162108650823906707989462807443744533409144178383014127794712744181955057074713907126212639546677355240390234819328504619525906070282694372499187024853278251676596661464639160110965802844593748579679075500049828252301597923860103869833239281359790867627535896134717401481060983905850880191751552327813511190970741954328804310014016049029059944277651319169869294783354008923918974350193320347606772584168053076795799154645474277518104920884119580026930549673056832224374469153688742178323230544487806067193073907638929121315144447485766191439616577396807810115808858747943257172857768877443534484585298025225902589427491199714395118450130022166686066087559488162708010820373095923596038392810850448546888661075472130417624054303459639751338079663408699383326497962579584626427723478724739331961675384086174552633136101559641756756976590397837682748328909978939103138630147304104728074546517239177309683577844357269165725287057711960300517364694984533334568393086657468227097930738896557469956047484889932886458987358981102785347826332855984347775087967426014296241470115657449838187157873699923629448621618483302795154170217891694951442903057164909137929031869383959760916365135415949203934248858997086444493551317727744135444074412426089330120950992629890036541146402479154465138295896512552142212579943342197597820509918631769674127541614050933748343624012696202058982640697845304841268028051575776424740869312535925678953467189497484332034214247606503626415517695438815173031748230520082255391564907762673525061414468832357453313757829270915021858076502142860424027706355085819349420365069659165841671266220614103201069302587696148129832015417556602719412380478018540626185363217988824582538928457816138288758753711773202734117004036063060464604068784159234626613486553393318866052317460833231015539872020043953719868064970011788880961862163389864764321967826303295869447622397827122701821545254161254347903750220738062618846609107024694843534012260332630450514454061822026162280684062435870953189203162637605153568853149245347106017809977905690537931202432668901144955780424958504759647028730249030393176498881790136701565134515400957189414760231277648015308584503323356915809123006310469549722799557291792093826919718138158467961312345232081336273728579367075666394231021361812523180361139438970314394828495199543758102255939293604135990455228615396868006719455726100879732927813555972873642419010322157214427644901881026763220233789820936512808751321192788828294187783590391228940158866593713126863854239544840904715156685933744829557342939740117078682826123762533975563481045471805541504450506185721622612849663892770800724783817138224449172925549036411434814787193852962297321062918421633186022719700231279461043616231487342526396374425798223393464929145652866016245997793764163500908246379099422267789296012216430598953480748191481720351641779741671801740375465439562423540430741004219184831231236940839273963629852031278653365094830898892136538438832071141500484071141398061237747435051969621216263374738837995968021110024144024231404457086722740294733511231521366551463653934306798626110142447892129182692380987405066437548534695746071628139147727225441240459387945733733088325509920093858343876341636672952374363211614849508276801064052781186309875115727529782866473966306177132582984628015958481068298007637428585517809979893411593158884308600281850518710009310693855619833797787608644801404055086828207005131499531886187459073789346483719414529132609392620657132229306505273021000846684913892192633070476084851662610051392936600071725451011193929527911385810086753536537717314230754795138822890796446427648443194212217217599559238099428615380162637130991893839072605828868266337466531260137760614840786571046558895511047011048672839828103600867377896400379282568072752442557833999994705258726783214430093727463098386948286228973465365871026693010216147719356158337579246528811374770341252097511363025940722053531789411581195941873394655275240990734420182820177120220534706092568814796778388706372677262643462830710215973708730634100367742256542278095627316655862342736273112676284304426361574161807865900535707831694632411451216680903094552878888087630279269269331723243273318714014173552380971732511058506692975203054211909839745366997156536351675836548102092566075741733123247878253246684188938849379927038194357314152543915582685416874733513711944104369723235379146866649206819134128978809345310323820196360463666940578964289955872526382429220944098365104300744361714289582259929157158006052478557921714066391623036695494497645331141506906433948780008840151800167357209572995172116705964412909705533928208285733617599128864537426125665027057007356445507047885670561655992383429477781616849860769641565889586616674766838711707667637197052458401013621050915301448866553789163527351636807644875489440415604625974095709703475313841728053964599273806231477301789500405038081662598850203547080798894781716830822630086368667642999828389584490569348665914435912515336420833519058582895537420636776542274860946650598610329769604938218298239469185234150506607310442891373342938108388930861951177197555422086221870657335167803685517904989414249943940249920943799573275906153271952584476173416580402859976785194714465703287026317396265487394986899516110246409866175702475667114756790530034018142764653799707692989748776568310683752718817904629172744407706804639505171454292065816766188992421752711030151982792757456659787875034300694590142586344402272067378986298597933789673487573315269374961136244647897921640910177832287302488176789902687336329721080969590372432879649417570761293505176273785461827685430082122536441363364859091298597240910127112720106774641274446191562622488884636731718673643362518644086363329727453258971066874036628180626828656195031154439547714620358857485511963436353556286819247891012856313349681699677049579101649912116943336458046964321397877513669637204001873117042147948390309689108967561836421240793571476335290335573509743101429383399596900812513004854271719614696022451230537397339920240090568585787088153873281354110411326977509283027221499556590463560016033914320377568793457528559571534197437068055236695582116959565515674918712214835471256971859908402813915518779176187244605977736125306492905401388046405598376675781490837036511964316443526882521983822680645380732436065155817154925508470649051218253902875546270765024607834482442337158670521453183607222871363294529262997670229351188123604141317450791251428240279027322954483250724194050594380341377443199921351143221994131212623139511829459208162295163944963918931902231353404892762532686145389914959357482671689904046205007028356935821968151196854320188166179850714518110588778505156602698293690203876341376182945996500989493518381787436346526156753956800442067970794378288326463761284553975263547667086703836984944749462967346282730735304954233879751405150436592379085187990703374907720227876105568937975085247435082342547996161294672316460410112748936106426604166396171365989323255633434052730053640159410125566569733468932374536426905638097379228364923889243479388281031585369804173270398164506727804982025577459849723357749394282990484777295644823975272120222168903806175439727809127099094074734121259219288094919591380033316834730028920557796308475728276673989609748994400954825346431905354409631614750375048563671431078635209277120294392253216323226706911073914181467289716179687353865627459658657439512977339590052963475601392664357980817649303474580369920370860334383434203559651447455020668886961218548136652548575897945293827705559166326660912056140382246665399151150118839513239313641775533131891949654393996245572301839940041485588834498513350559500720338844294413048080668343320641041749469984719559421258231052284591022147228997912048555813307918201880518746555462175014402496214949216900243132512720134559086624360352421627528394789197384603267609974399868813569835118829358065740072337284122028499498658105165086578998891700038145904045571565336592699544603283148796912796713640694748171645988141033995208810295568626051522958466347985931560850853695825934270472677876548493123420347127617177717608978148987448911202226553112073920928850816762977928994881824848053779989384571577887120707386674856945576668106402006144189202391608562974423033090613593244936309987382276568819545621393221109435962074121700813472566433097691653127587593687965872495694495060551685889265876805988099510223191917376632762630106411750929093833827960518929988895661068315617690865300732214135413126398410159624664938857885946192639893362893676912344133523315875640290071329961740836872076234721685898335980632782236527397411980703489525992612251793751206719538903566847626207440026246946931438945903195103741008217447787656420938437608835679519967027770586184626452463847887965180275959717182082849769009764776639817651034421449585296457312527866631889381233365258900820240399696326543957053699121306907808395480435244767424303223807491135740592029444988859746690161651854677006903807171861265522189499230318222278199552107758642526440529052511326655315510905113492565273378344924102117751706789604029227203741309048567826166639449609829187648424284494359550309503226350672798080211399270854186102202791738064082795120821427544181786105924920610923906376232979590459725806358230526532267631838673505619019463752897353321518615033453047176978006818560312638243786431358890044759882106930464703875403320266280304723241165355857520210126178307861990885948358911002375460652675445303671030734572250485777182132823825369526692313660955465587222990347042655007359451021288775013690924981744063253859516820324947617583782800694778535337345540967247552134746431981866575619117056921798817998332897804699168842928095246056765546334285089781655584998307628613886080321144909830598377030099438417482300281217474378456372530390910134569611687517467997229804820231535501074596909093958996790922559452718587877148630946997705090609127550840418446305723442444077992883691144540402099961548165107291856701612643609530539578788174993060065832488073765203178603409860530997555339175481702713285468000132244099383883650209444116281941637828657615261453656190577082100371327397315755908179826133816598908629113321781551581381791483256889734038695116076929171328217618006242970342365768117977679843330713047522740380900865522845285026630786212250105128385972939493023104409870318247590745751352868162990119242973195203004694738219236278298411130093937191378729921630516267664754409527258707173488188016415987091844345678799956440991225023379470708018259297539683028710099750484833742705028146401112685264965114378505708912490037781195838372740944994535022540191871972805541263186170600145567615352186586539496450386771595736957042470132809586826976832559071351096649310440795032812692909808616314755118561381672255962077043503380485025237815525922355987182655261289062953780689639894197844541949399227582271204421771594173347114308755004450912475504594492724948252773737374259274396378236015274022961056503731777231942822456093836729510843144659276244250400574545262471637887501406094342062772082800142329168501156266354298825479462753738427336722780611322994304450087617212703042001060658076268365153099946445688426046823654957341448009259422338300221314582712644408164624909393830714795262707157858708805966151897344370103921649891464119370229733847841738788462787368844842429597241305389288953122525408617305923393174985268815294345981066604269043163441875585854064946774878140564266015199245881396455476572420056314581094389385295037539750451507485526365674752475234180461684083414077238616580390059782453369354425347165015225500979846727569772706765487847588026014174336180697207226014564063773272991916660716543326948142509274757837673166941176064521103311959480927000782853356851630095874019615148930525267895161955534526953705006540187322938071298007389493521187436979926187200464654039562553485889380914493268835050981783607759451508657664012674546424231032069469804680819396352822027771314530801837777841672774371943011438052148050005948621219435159845900191284025506283841484700843181139021414525325793243437255815222464674632948554204070672952751811947152024688733559113706440562086419769246747337839741877068253451403208437894693399579271874636899307610567228929825215715342157300937948836966000551556091166203016057815869502347214573978598581079659297990689436414548601442843645906318939131921724522492632247402875639875651651735707439577396382334335245158274878470763123283023050638297140355514120203776275145756658386610435273472686238846541855840124139866602027654024388869425960155235672100925325465538967134562949083748681882539959279703758789615561237013352450072570687838697581773083571369371973964872124420330344431376940357312279700310022003016629535341511315483841265387768274603790047272533137809173418153786458547034158088432856034370465343152198400439377950149933219791703943576764559171248205636750127628125224751430400703377109079584412372471306188353567166804356697116668178564958667502883798566921535473648925615321201910264988272073772089166504922103649249769374084522059272924233358016245472522084472282656941230336424979663209951101718049980914045029764381558203145761020373703627320263409618224385154480680659817914668719189257305260821007617572854785515655296744867136086322091548288519205795577594989837552698720503289656126004267222996190085656538036174787507267151577884706810162072284733028621231908151122882051881979735232683270833764934556268773636772432023691851483903314494464171859746973817372926874455881835137275334501907854513350637330851370119338218850263432927823592359004761223963488798968885983770445077862429164674099596836802536165197566266159088169405050814640019581852811220606164321273147537087337716317824112785010913873783581952884145826997769154647911033516162027079229572942286183449887005827919213093944431082740801053066758908482410451860920146778739938134787157217354997353834634136739327272642391585340587690328931952684073082089101934136409705108075214532209131842797327716961774826358387855018688715733213592480604437446687916786195705152279994124623800611109070165020067901196050781838588434665651111993118580047827145450250809869273497377575896951528191360073337786937548343124231045420177378545775773857190434646750310057328308149708889407681317730757179648061404225238067517656849770181093380121225930314883294806526710324858612642069531050774856400524284993018934691831259068367820163175804786930436530594303489467432075077086727643536577754780749986602264635647577285610970478832783060929597231826517890807874172719051335654539644421744382484382196056502362168624953938679272293165242916261560097902703149549527184212394600752254790395719328183201123089535181012527178531475541125561214129314097550208158566529153258394731619090456101671806850183746257707176122011183046062412006934310527583595170334876066250991538202706690482482248382866090718082450053131401407819705036681032852329276753403730220331647656606950398780642851618552505844024142289580730904042297250461011008367314760666046612779405538902098093290997504705630339808462621566843461087255058212164849165101449214290033989651387126933682823807967863722096080650278228736209719990215656648109682284030211254100073522946349785865181234854634155102749488002936312606429779712611946706785467027810553201709635339615551863137572933065504435063694380585180017756961212930563056178111947155389582744351428503661603576045718976300147764677735766821819546315218083490239444113548131612636895462825653864335890603312096308431723134076499791548609593242075182136667939466432749487949021349503843932738265824571876717680492159962607136791010195890290453763378641710365288925016127815123919089689471064308106957477231532454600844010621975073109754691229052218853462582761545343822933994741408249642209906286351716480784526024514379666084608824155392229126274407044150556135862387076890629205831056875356436098046122939727593719984685654049110156461803982898961167328918610481874953661913959679747281386735327743926779944731975214575587416516593532806704319044448258100552885916066815575700930918905452937375975941153387425545877262436360334295476548274014446095733505722690603501221009082166485131400527374633461438015906122359739423338215229180272099535261463655884916943171993770560501147354525958153377514844666127907606087377874279775481897664828452816753832366166191910735742574741495203085426871486437495130972530077201265137779085893646222947903342654006883299678047975956367411795084743195019287509332399639382489274134587807601133916580451507589888439764263181079781643592006454081895647380987642883613755592209335623322975771933195250751845610997082221438915113123049223042514942580232831402057119267398514125041008942283365879007956437842209623929922368046182524985687562574620176137335496882323360459860238429516755548253798802794613701590738345047039197655911999595349715484374817701298901840647751249001375845047627238680064142167638758729966567034092555676761663216312777741079515547558885865310748833901165487703632355921491376351201558551422036065987713810319418636417410188429517538740685230076486912947071899052464482915766673964521191383578648046649128871266995057415004221683272380043873352383659105904150272429508719651193427337090003185829886591804467788196340856823050566059129542403100056677025279174444205940701700479394465880140417222055223216055832110426704601661074101485557357595734678521224301894894682139764076547839291862481718249346732625873197063703229546499934903441643885750978483285788255208851779817997639761473675943038942606546999618050589747632707243464042837635490613616740018302659994753132890947161006553920834244926630859060973172864765074772786652018364156090221618761141529114832899744051386517830057776519854035404941518478589091372347893451561364024057881460051470492236828958173823978340458579530531503863646170390265880382288193474583715342767217632170147406588160418576307577042311382600406303151952744075031185964164070555509144612577421784940558006214074089794352468728294583109420259362194695268106135237160657329157674240894773572935743623176235704996607757521942613593746112201849521832180713502234712395234377692978383933547769091372524079503403895727737981775255369145855980964034877285751275142769590513518413178161258297887666080268264589124163757081301160619680658238918614750145594727865078081045667099048226373108549519304771509676264449487987562186135361704694186363463563877625738013545462104932980669417005761370987197831785735191328985352025410953139193245635867138813990447118392855151428918152383628777480355839416361296835196992798587750144592825995062781954376767380198449850493545479825181012744357575458513325731779480273371000429017882990379082548299061224248855934460980524835407474922893356865815255240974252028441412279813958365316878243535835801120457512715139180760738543298765918802971595298403050907514587631522357421443063114485753680911477285095601505638553261033349943099128460369314547606756989583610846106226731093824555455463290707352807216423036698260653136048782449153945276297120494024005405972100560349366796460293336546194427804086388340405602376345004912034664475555768098928605190652950815762034508955789367835772044693278818628261420488539620327040162716924686519024194140752757290552606328583745044878968002526496885356551389552756920142545993657944098566298429105470423334370520405929857874613197194443418342131259909189784583528669588618452576780946095996666511559458816474152968363648205059318709319332215069170853496281193754133701839189774589391208663767030636497468544807633877406329046257372347851028875181106149848457953483267391131268748532306484252156420234974576723365034863881815334093853566390617385133973058130350677912647987251294957025078170955619711304591056988254924036938821060995908692503157529308484261390949077203773056518620239703115111872253262300535626095734655540800192007082572113561785082346221319594492110203918565397773150327542360472874896110474942584381859724930061958747669876513588550734475855411747142545861578390330321039439088019097363830921164559216576832863451857682042118773438529379308540449403695747609097379745566857819245036231963476193159915150308386789992459691512525779734996778071176757182049770315907157544606341258570984363520258817233155802398897641395954319749786175593295200291323689017223295626788065922897611938376233585578437589819131514503186928262995820461290018217266520254241662782245478235131756854250967960887984336980039406952745182254602943551196555297812059466686346600095405085274314940958951360552326640749118020901967490627123760081084956731743992064306284898980323893162841955866870992915815913115983444904589352554774821181888207658270287025556227518926183491721189171368183368774511647589865113694286217741265693696828471191709314742628948031849110144391503734682253045319951367808117037869863755725209781569353281445066666831181877396566617475946204523370578117687573775774838080147791243766487758244028158786284317014499480570481027413388009440360429956388015708800209869400056834172749802459358077490471287744401372179647591725622510145952831730320684600253511962677539255261021736055372057883603607519561112433677906489380052526234364724159916601356389289237010207859771375276990419766152746309052797813479158304372023710881315491354301955730595802129914728056487143650625778136354422091144711747906013975055314777818978740816255939254672940139534328930781784734632825932368112603927806371071716036047197400374543635807513690783423320629805655617040556340073246314085075313698179638119205231541492453019676832043929999129053101999941307985097101754245177294128569049369025841468425593430570867657303420783655140945122744058991481860205515550176102422267777908621760197684604662535610683122677599263706182982555147942563251331514753744997203861575950873686386435509881253988770080297481137955420635761374631413214654420644186453135024605672721805698934110550175540374895527043066106558719436203939611930429474381820482011737391552454744751199990397602504036767729492931193370226922780936948466422601449019588327598843583939452790509657535345973587863378635806649192548630998790488389171333223365645441462126531931100606579042217039020840794548010082766755998486307624393599394020457548593962019010488933618408994642702167292503589867227350917001784549931405855228955136579501372880966717073298950676328029559236239960202004489906070874256048910828490121054953849046594205897812880948184629190056157566723513163248485287167917622360351509363793533423073810748071685070346124225511351882189448591225780269896114823668635661732758690710662657510292501559919884154809169962932021233271647291416885218309206782389488553912428099965503768129931260043301551743967400791902614509441407378174067503958579516440239962596403848815693546526246653861629502034011764173240913678954183020268145771586791992952456562164146010451164344020503847610028822724616729488723090506538221289833974893722382996059286683328638352022615059706751813239432209489425828518948128491402714117057888031877327645947797516658100817638670400060119516096469667824648173176857248599897774522755845202397668314658814679719723434657322036090367994304533161609404138075353446923663733896923159219992297588434226439903250860484502727377306572887380582361595435119485511369128672419187349749994557569224175274514759586395455002862007422663030608716070461955256601135500717969035246966955303767579164242280511946615425506804078754458155303153289317049092846525365643072460278675689874781466860282450372881324538829162624164588683915625010028315112935360280326862551958202040106518440441200177142632480697669594028665764135453501864496368229557423906033668347463803329721722690043596394057087424337627258566136057784656093786669799680432717551327574757085968869796962056070674811840798729619656895817382458173415118838943077764658250607055898020435379308383797730250740897396765508845091732289533509069341664710435575640067191548069771090886332660733852755749204584424227111149810026718660095140262027876530932730785702011961661522465500410210689453331946262486832172165763748379147489775448012362579667713482444820477484636944799832302023753667601780992946504170538702846790042069368270583223954321481071893517119423243891159860016008165109338606898161579096585788111454860204399564458769009807619853882126160123395779200691058951792290697249358101357187502172551727480926125637095366730951524300776285791971924466172030117859378339394701814705623613544793098169808508131605013574359305455421645417685065824667301556133228371507728373247860526958707273247159559206260024990015915213949814059047759226561441441516366998628819334217798648648982493176623985218012301881266638630507865982715792552411485950753857657326522568917899312498851986204784213964713832660492281331634469119922275728127676208093796738224345068340891451358683621989148829825689150661341568262648934543433377234793045521097218563744353736049084198588649358973642948799612769411053011993948394039639152911669358913897190739700942061409122709907521108180050610834673680993922083355955742562191044296607658988947352130599551639547159568550173857554132563829825845329126941290949212615476058053710597751573370341883592181416646366272816910180267027884392921722738398393483361325742838070544111836894816362329819684825878619467177021260135781435644172134326192707692874628117676490780399424604387318257588211320517592612747387874779187764231854865001756905347416273946227039657869431923126068878250813950764029923423782549105469975591098663755523211458988129729424465415870084281955881764402466979936951401639490745783624883056021939602123988015155465978569720060308130441121036050129346427383793760062207501891091371099103500278694200810021508715454802376884654629216540002058301174173061450048092299629871970363422192559259543627384590174074982883290451436842671243427104046080942324083743688867595375899337638936510279877042155453241322523364830036768379070437591012027995000358563574622667812557976408797747812412902988475759956784880852373736351015784582154115212737418035770616827411765947196904728828079382712921866271515765331672539717227822473018677661162297941951939703909556054186305109046063462722852539259201882447667010725675129354585377618771531362752243534003041626859847860612815277307709802107398700036100787989137571153124007662052261535022828486899987307537372842736227935436520832461792581539162943363186259567374994348948502830597833704465143018383668816316678425777535826667151502726508817588987456884433632751585325982022295942117050984803652236699481283376955978209680091220189591346044780450195373821979509526716659465352602099450264549342409038679106084341934120738726875116446100932604581683023242877788081466536454364278416837049589327530870506213564880411769379733817954218351966659499731559575763155391926116989975984929149286668427962052096874799679798103489729330673866292299685660968212278197433804813338930537064306855598987141307651094070252083321468221926942567065639502542138284698598767474869506428094822186183476338850784029876232245683731674532729722438272905960072316599201129920384451988461909923247498192463674264779803392508550893848324656665260704068779178037278568993103991077111897074608694907593775366584860651231675775108554477832587851742531657983457707981732542197617672047139681485459325099533354048198946717170493980633655229176965263932726771497310625076538878660862636032255788663070721309183666695514641569400644082790943093591434122271708431370952600093010914169455023196149952002054858060898163463575990552128710155063700385595884146833542489551964383873494533118421412660313849345685698723051320043407426119121898214507825000458227012274332188371867822524793491329457149399631110599935481513959249270227813624530758668783327703520889443946052415256185506274766935278846478800201150217733920282986487453284415942752331450122988101830060290471323433376645464173383110056745309328598151073434441791696741685170051719725370297555418665671413329198195047979976150755720941080842210887720345369385832975387577428288732669808434051970310414014645508937622727409522541705908206092428935555735989229710838085182600729848939437459181000472745589678089776516869657559522967410397342423403049908929034773865379187012695087594579297002375711993818239501891395390681280899380516201463049905445802981244022713100364984666925711138758448890807724434883314438844248951454591884302418200274498469446326461983419747207685396134344820615929880202625002836641594976781539441930141985773102002493674884717959613414719379408098249767275122903637809542795958186657647935843269894202393595680930644403051602757908799314353622230749235190467851459248125136278409611598474583999917998692777865732016467879605138446411406814521829674555294446613560133956482748399483430774299413385811033177460236020279336491298244259123729780192475938031925531412490228685178909333768283882145805396332174920406204974988573510566311592389082797428000920151129437916789353690916445288165078256756153023742215622773742589425181044293146182325837997014275033842618436612008517233116827489283255673105642130143552868126458583022562872674862204365208836546848852160304140786328541245927383457534077105848874409687994646364650773368762185504146387009965148093667907867386942633705976865328368923682437098559167513555723082664038812099730218790593281512372110878296106334553820293813661219060751977009089173765899791618063421716457264480254021100269910817785407211481032724439345757116048026279812898312023487979447211058502634338601917922229176380775905440427729693791794443762759214192152122853819433817104099676981648263579982724556905931167640458294997772578360802379287245859750878698235220295896820407762763387806989188531761272733008267154342826860234594230445649481320527501384515608106144039967661163146104864498386827781442065714898280833555652521830842079422015180333949958130868534384170007814154757291614560033385937217960659680063259756950373018037775427281355442870458241433036335625791965615377378450316812851065440522875670464518337634218312075997854112662987500129632672442631670103046155073684193252559478285887791921928335850118273061109743448368091821918374144923968216046728469137170529997806470483198861162770622696885369784568075615067861857540312608932775160810489883464233964115266815514201106396068712392244107672426565045569149510794038153959038306020085333459135812590575777554232402833493179992033675199266228407562707688349485166569024917187274454852539957188158804051997492103151784776736979249684887705866671532854573281127580720700106965742459633045656406999118661638430268876477567632209842471115373244891578310423067168692588220051541507104889029833109055956430452478747484480248544337053312724660572712148684064361641458207878554991744493249513494824879881348922315038118915823891483017369161211134424773548716605594767104801179341718626540637437061836895345112127933680920055864518445899985694555832155073812019678246054268555489985619694675024181657566894488068280429092503275185691803033421201735292085253735889266182856935937803688381632796204244707819136590426942448702775035216013529107080100547822688266459869801157758832311508087896294022496960621370746146659378900865139309435514961820667207764570366130528544576688059786188674305130272350685324070005187835752758389823421168966287076732259300362623228332464662153298822654209974837067250965244809349915789740356615795235049568050508557675602612980679668076629890312979501695890167683688657792442683402614198640429181962618249675539663455944512553966640739898052357595369379534635416185567928224517919756416665785232754491507560641710146643937967055618673652628302487300714297127763145578928420576976409781207486837834680418144411378059310229891554784722084376597275442293467655630981208023377210325108016127747185523405897576930872409224903696735403722898802625525674577719689866600040405401195510591967321009310884378249759797289923914769325657267850036562117213240549515439610491814715579315409678443442226172753595931904310020215360143227032004669330138107451395626343457213203409950059716340694819931635110979886960470036757981616947724632024436306842802396942697350659704123287570034273806425648138259327724293598039865068310532676333230818337322327060607151287872271832460577635139395175806646807655469936768502953480999549123308581114400305759341565515477455607792837351137908567363128883419355334595228044889593970539546924074522405793719268461468738053295974196633545739126344380136523022082216387465546281267167800869924153969192913658631269834742347378419689845916125925074441210564946743693163634225436419250994591169339009952957794762612838678232304952657464749810954032786588408133179202849721481812856376267763049684099226323276531943434427532686091632376056886014350289695378970710255394061846786726155937238709013553924514192822322573558037968634389592839532654460507615105932823858690622492551733673843011506991182498482669797296365536980418895349087722158656706484234739506677067926101088982861218469214673849402259766262853481982413748851415405018386027167128956083509155367277917803256360383682262988962488445159819600314246525165807522812746059213159466903162193479161973391515051299608399748978935894192878284343184726337863682765129611830386192781598710780850670358561941545463103670784369211523848497006577678089191859234637344306579424006980742600056894069113052466352631609610159295118431394595568408182240576853981984699932956453353694419159967237821408716666200229659299656001152208803067616337324358935223029428413192587206227969199984855631036955756467873844363499823011418690046993078937684557715704645498899710824511322619127951216052628970482629596094004362629606323920718740854968248782419718903235459354723813986240816172731703513250919048079969033878707459005044366207455208607925375968997511600952215372979603781296310084029624634088281146873952614241761884845729270218599816433188690424652524956836625061743269638030650946877308019872445424492427166027588831881155366509189001890561717429839243667812655577170325841541624951346204272078921037878888835673881119819124252186249449384837262534184711903912502410605393880419650333536946049147174088491752884252920141964360573346125653413078468310896297716325766689344476867140271833167299096861725914029386251878947601359195907304499654444491873150101389675750429133836495461056934401131299917759850819295481989768529411594617074657140452915967847194657830065703875811738024901586977426518459331938450340580316374202013205330632324916211559293463626540003977427692014274207655480266704946372684250710243655239692730834890722740510491892418077405272076076901100446205069710158311352673434294372898200911500039750385199790158324537624490245970250870983215304006742900962417255541488456960427926750484540850297801206979076851791634563131457879240520340991283900193148879359362810735857505137988159558050324086459465200857732443137721838891873627007785120763307538887967011721712523181610202362319610278965750446963305887897194994919909721889005540343038534518878994516493423242965450476421642103111846909490395682704784212094693213243450744637018874367409452111967419555765824890795860462834906403090588105254433790013632506704194186696955682350175497850219959351979013053291865938534989143789534717058768696026687318592944637057755469494356462425575621899383156176249590796336714902425547202103543783539369494146916686560430456131386460975695011786830022933520649885599913297569089321276899140208069312229175064534862472591089008849491600561411107156756113302205078760433524196009563007732501841988704890484323640816620524352638787972747241814117487584785264259405472562623318367159367121485127822392869265380540514439221164979884948518859282549541533091137793136442961161254377699287167733924618774657107493849001768229114683170102315156661981098631307038706460452205017272220400899124972059086727746350363684269698149118717601317698502602336930136115795117290387057784218475247079918389615078833663313168494951124342137808510593109541899451794278886197381240319197364014027820549989372165431098731994180819441244278909875537170372079968065181705415623777704184259667533195709644291403739946490119342234870269652428971068777025323881115015521711729674246182638323638425868029975134533696561136802120117853126638962693481071399422275278092509849044639523496826657369394407856336776503776774465455285676845319636239046617176115806541696237746833787029728161304450301524105556159160031170117003135850215975773817737121912462130449563040537738398108861499341247275037125699753694130234921171527802712047262820505712832459514331745001351760807791149145042609061010303824198444968500691636202362850582855233031227797507980623971774487064460885349659353630691923349680039187774953654491079940012403826420912545768674901585120927494549367973404412900455413922633496575230951119943257033513576436111842842783480557805844995411328614109077138055664542663497223634872147172196552185252557423030767569718845637148842633173396915798682676553053101007783478857480138735328585249754943719380087213545583743243275578766057804044417092922076877359353881086222393696776558442541015387618415053437685796021841352604190481137189036675032248684498061293148621826509043177446835636989798000966175481649382187701011449903794750508216236585085366006729664807557627118104510838921062438030193432024991005987731112380533646542610831106359038983734346393550693144005038802653696988832287032464813905022156244202336422605642797342203064866311886493100062490522890775722605948377732909311760065198954431240039512510341949818963878166098369407932024189395174772903713710619480387017752889239724162281886021209650725585020326065846702518017076652653520513978463180212082204363477757036654611630931047415748068064054200457135746924643821432331945308108416875520663708868884137617947595198660874861877611619281293898431554802673520189493499578141940758936487132858042720864412430655725661033062798039319749265999421687873023706512031603191135013808159642176351157482222744791105613197162846914201703018452443528982877049860628024231921690499027874269400720772978755647241168819593672987933221004634288226932185484011311972474124079277468667063580354086400127023297220194137476934703474143542822298164619701975646397502647519127025123994375275722793941726780052967573821671757628988060613414246780766054299410231927396488741356940076047462238687741267192240257967692746824167269875926615652116941240168367708945000767818237742205002572167808964584602692308008987713109796497328230647989388535197750397434758364261221464416794991423596752081070752673034852389787248996836484185768039401199245607298769128102160191581623997372303158893971988245396551771148857092915454894019680009991150180143444086086040027624472000705306662045418506896167071777410764862141569813767873881843643049865484284048887322498289441203846837523298920145414203573109020458560131804932518597104413848642764793358490062069558513569929538546233005860579542976972749082213805067708995865116958622480772706492705836320915464217898245822013018543032675076865237764018173049297870345800833629959596132632682390590457224222148934267993297722776406602299793321351975109134239482072989840396840923152399408663418320976784254447982756503184398445377980387362339317479299498112311047854881372676267924963890304757637230356098953813902459807098173980045264945661488018608730036938176958527488257046659787564723772221382550324884820376558994119250168722644068949276710527912275491785028070334099702874935431230273096223950212825629809846494134302811705274323334696413290245375842024084748311994231302419889726893630479907047964599239883226560529513447009705002188091557843831219942972824813701648427321688269878490545569768087698446164048680728469323585385982236018063241599795668175414406993758929791683120391397203755015241906800062890053325722336701443097872920157822203823417958388284544718129604181128387005215689250743343213855506411158468213117904662303051382864617533249474466450674115729360114915601088533437949850361563643673600352011582244511628706903286212863892829922015236106978724086669774517287115331207424675278036221866643170296697323865734162968101519918183668187939515052524809126208899637661492278688815562002506669671768133839809140903650983670431701016110342935063496338990817314187837583349476551457077535535306001186860943120618555938267302475450493299914814363311018670735863290337209507466204366589056365902904561269924884392389939228072907341129422489410631392761292225823859996852336469985165881512813826658591525995897461859964459993886737375553404066650177829214770704568578615213541478817044242917568637074209887847298669529071093794116143234418271887684626447344195784163391572532801189568901906678769457256279564113497463619602661517143758370200630161673384610812802333009476311072205289620514081663738276542415908149715321752012561346127225572453046785840183757052584366496230648545446240733513479945973566002197975779059478586594607803054663213371399621586339117906491459876860253705129141586366068145614283975028447990328795585645003443406414596115176167716873262443968687285137955291430291300762185773063418005804236283023184977753097998272053354799165135995324964879653551197345035400271000567754135552664439855530434171595139415548571328746379893796501482606588647326686370816739888605924189253663081080347835680100269457213685203827658931942791493534047521632336785029485175632693014360404239989680659002485592661229730926988818548043394152826153155480685972549012137478911094874866880228457697280702951298453548519528037828578353039808435992381000251625391664995073659380194624933729624703741870398467137781292943932458918531996564237274328695878422582277577282763926887939840981247891123076144598624938720906352794294331442221979149736296897056250335011843724102342591594318738664152041012478529115652361502454861526475253346527382067459162726820405416004582549350443175948695345578344463887317148314186920735838332014886469960664548116657438232944534309896371887770495400778022253008649734471147732667890795625766394109981181605556318582647851782019714448812461688473138202103135949371546621863821386896263891726722067316188919632472128238938394799528263470678035050374714901145252327426215362518605372056469139499902187723069324187061734575617048571065438239852849289770396363951648469893420052117281325011199879718860073653725422609493351322088274968146778699305849462673763886415493790231535623591734008768183739933909522861937637383247530451839488023802556869602668635097434217912413293638784158676155464653400878251952774755834268971528978410032913828709243696979903131580588851123195217570143175088060129521059130440504970222856778673794295750836173667127831940313302119245471468393171705731079828998010296940226162759774576846067450712767805087629264499992955615734846014921376354069388097266475540660014830422344272432998956131784409764296585630879415689686745012155761782418950980113208049159938936170609821553619467518067082315648974010561705297607234157676879887191035791723505150346255349899749249351631246276046572536661547304828601071579821393062252693374131519888330478806621696044955135361290463628976114343910198372711359896448982132329591570636189052494898133287756197609879472028953297938776922865914109927495218597472857069619163761798489587874982783545174004403031644288258372115778066364366838409951611871186169975709105801460724945744018992439013463841885181250271802711435378510212256033785959820859720380160583470136777869655189462234050271108719645125901771394375912760615621470240587625457608693114673258162442534147310260151398860157176432666006305318950751457361504314911715452253406495673092112506890307899219249705873048011378580075566504691956167809464953376667165999552845757666806504894623442288924095493010979201204512718126838867545371446815616025041128010999209613474515071444061403846230354634556598399741005348902080421830451688491112307353347632817791245303821489271837349334923186969136872287303104191435896081404531787588557124448119574618773201176131587289738522980331637309170735297381535858198831204486939892148583207136725587327459641929631650110503640408190299856021784782745167900527501239296235186684353125095240610217588540517163701430559860206740465295715048354963885181217800700350155310686920601734886274618503364410810059900037272569925650042273045940883331810000864768645700553060244873476617569841965424312146569799446513959232867353189840340973662129571451641432619873742732647712120345906802081195636090658686721199305310337481780723058131485949510513825877177167320093980928009048206214619667192008585385167147406749630322997676751048389624147958268442077079383420813048829608515214253080581519206462146092024818884144065807182446996055055696098296193393880452029106262128748813954263672202320434323766789547759984616429548589044745959340807727568564827618697129649478774765332494330524522257944886786335464503119516922493472824420632927433783108319053808067119969052757374165950707575596549923302683322053903072429613001166752403528908340136913097452670038519383935477822430812396392144752679819870242791624912513998443476579181612353098543253673292245649267735225694432855817702251159558124384863598396302904291033253882202121487827644824965617932625360837504391437174696671309842807630303851745196123008730368326323187690718359272436111499711213360340188417123047534308449514327940431638239871795317611315906354483452141410300890495266592068925270799571954687905674592489043754420624774719512645840603709101076437962733764312579813167978178076814345099277792121946140693133301079926925827677466166248465399707051875810320048550790924874986269111373294714577727236494579582301880016730894057491678582756978122453688383446425426370197617288806175029779846793776478237303657086589899304423870220100465912428424141275798458125337437711805654515877023610838351213511683332786905199769934851585317420020539339189650838704599751665693121396892817253243973680982653934280712102029754511261702211582820644345407610606771380460631154228571670982118237487940693318564795123301121950308047899104167470260228945478760950879737563155991283909878495094209310641803541395698291077761211600487733340735069826391871852325229724328325017820662029003680385697223049866756651795356246264356066593142970549461415872390783809001792891407155291401773962428317735022931137156858697428915813665069254409731265694989781796325859513391725526742346842511647886159962593278751224935302061158788707326576890947457286024902204296392791121153828267384160800766337079429466526729638526765445237442554766591121608741537819933279140541147581688175960320358345475656423106234197036885092059014463451916792637780698465901818115579284097179335864251112032556580922081011507163339160365970191447557572789745451492658839508854214349055939958032411689647265168093637496129716118312614067201094683724855084178771763967853101819778589623674883921868526123242604803581424081450275782123472385584657636684033586411969507874260090646620111210865625606848894545977813376649202629609267853649705203089954356852385515095978747756340184318147032003765933699197237471040961056019928280780398983379196954251207745914721427161978776983469574396282416853220269331331026731051682930355972808821584331287508692643565227433198655526651851931345762310836479081099596879371623555459536629584395314005747578697635913248136849989273849286971574155373841304717793365035140861879518851822634235999470295659127399947670170925848727282872747047791122968079755971813097655682671061822450633843802888838326387009175393923527216513426451375311186593579624025884600702203376897302610131912287641134228886589216603962590249618722288955831684784736830230097190597820976272952961414750775514762098024691811872768210914308902760489743928914108401487367085419463582158230134381377632471650224668143535199684731997854857936145142347451378179155365995620670856291549325339418888195027842962665628458512471771003931716523894373616431871995988608675310888066476119647689329159398598270183528264084316940537831011396294634010094489625229640979476183631115917381102320619689173661960741966062254686906212178822783296975341355749705566342281686873990781804305007081693291431230251337768437338116409532665631005902497783086432157179545888133206496769237264917397227059244238595287745154516153482224282472926142032232284782184577136887947710914475764180514224905611405140759652545864240061654584590840592826361323718275710979351977889617025227404515399500119254302980575635409364590344211432000229010153238007215390015024861818851434176138029249426759684700257783417894899841894250233851270783288691695279195171324759407248806352047894204863761395898959410403859096741224730229813989746258432139254009042643112230505121932397828713342295091480414009793367846090211901246603976755739505918372485689034352154001089704034636071142663352978077955564673540032935604678833492566809057212524297233251009639915177423268453047427659532103934522622405840638589974682476962292190081452364908853522091543504570889904300151243407171631935800784776328291670664698959565095531010109193241769090146097353177275114357727098798552668883941831518680798106861807556488279900533816943305049005215060074197390652354600780706569107969586176938094118507648772460821714645147505635406137068629596684333286411508352805094196205265974649828950096370657668369167662343913890118686126197276730684858887390246401932623316354954824169361262482457034385869910213403309843280174755038545011958940397126982111114478646445782353358978461741693080359131391980421673259506107702299140998804603406202336507576436875579096056905791923574961836265641956393862496576363774225152263394878272472615068659954574611048883676128062397738572283687885128562413621173002858288101670623041201174860641437094329637797607610206894053286612445781480823159049880876556513860124883223503956546803452942367835107306636723713451920216081619595473030547604809890278850501932379167219673289349677511607597093986150445772359605362549505856761627786963933299381478384902905632340573498376450423372214073096741565773450760373336011931673456811971887965181092667745171067076027011494740331185977808535170419245123563618367794403685100873974495402973765692129061717303048878635713168029145718753681143012624126229815770417771315313278969754865762626380759159450879995767633146754576090809507037640219384477349058566359363108755898405990103167108589948212418630184400339279399124454746790797033479321830501953378561882027128452157265166810325759019428571784176609210379820258257218679131068749188792531806334281942114194156893242380654924792532556800264627899793777703306114888567294477759367466214629000854521494064199404045829885143617192929795453244470816015558244734233655398946321907672314779115993940066286540251959180417970889726365909705331597514610902929639243511599355477917729344904533927174062435192883069438890770973146872543704967335411677245722741096225507846313026014295019139734457586719418702037077027652870391038420486583669362437992473549081671839142657385163942416187827172035062490551973810100411272805698523444404814792752588315079717993577146654671681236673071106974274135671616769692486076761419225598771148508568798996013844589400985408255862325883375448928100706279123629622707371301830397002623585162903369857054429180729145353872212997994507171699891198198896576544042271690071077482449728787728453975665156182536157515497333006891553738085022042520837687546681487926426770489716418069433743765158620181575613101847411914739915811787428081347974279759347182156429007885393977424108885144453703783890675953667273863119477634923863791236625093423063802146745624271614671541767908498260379001221494387995981332492927927105335513766528403947362880396506048265076498731066136987455844904734769911413056355709131415685677550496348255588961172541742151017640625325552143928265392703234023515760104526626228248929218174819853914470127694199675149041280024216786932456610544791038169495841563461945866816610098097299948010437715783436073958707062583592749935135722546506496024364025592558284587569171512993303357206005601673225378734538113099932292713168312620617656967495078340887510400290379121528593929549233662666338858290466403430735068019294591644769451588339999572879385494081341010253843107891451823292561140620174775746626587774448056009609319209350111827264109759587816587430512980498905442462202943532800370582792326908757870878712301892442285963804951498012822150840108879733600487789822692847893331677863822254877567485264752884145046193148969149703828351817871047758168536298764944517185676631616713962306017554974972176575469142467931591651525452705977454875861100144128035619968830923138603518059819295819989969886439081700595299147330696231671979798957040427156092952753085270995762983068430242536724185559789220231292970586539043381403333235501705524470966858503534230948648658703171793220089404575196594897784073375406442144068701280742911377385260916523899938982152652411526428889696939236059835553457019236852236469071707142627099705739882805613662355835682671275507650329458154828966195338680482619845549151932375297637765833682817606753964062711395677353296524239664233007303451134254137075797006101699843338946330514325436862891311690026051807064257041954878282950213425481110844420343147561341819593574890699607356303970775043678792688968358331938364437564545768246080882283943618773205249667153280235332245713199570099838489580294406950799354413188096842946151947424186882274965617731668655315857389261747410259611669740442071814549506054653472303093486987589446601734931515181133070134570925380111976741959504451148274888800094727000772578610947246795243323174700648581089462366448697714987091140813800307093876591934039759770772527047603482060388944025972192642812711010777951944957323759682242577028325452164665611234427996807805492886359321090582452025745573551780499423165360953345327350873995486503275007972963258115199533894248782798504488396270993954211710361257762035998725651042993532945318770780607811042996220628226072686456577617276149107631848099877174086215090707057894416535677275017666998414285004670163839080913509695224732704913797752907695595581232812495498151104774560572767776854096838874511379155563609521396386288698179180796591883173635294389816779559046173852692068111329380307760360724351341318583438941810534899840249290625311895483510862849311846521428804264217948730984195302386344047112435726601256825290001000786501726312253696625602518539067429698434867890743902162432271718125038725107974483696060695032355425825850273229266289882460247647547965970436037782983078076578494831665849952875166292670274275301550304719592092425207008258753653886805194215751312924061170128793859327038461536070845900321231467238508653198682523560688691296287248468659534318252049610840293152593419708703677142201432956224479669078190680933198713910160380952601575585670217913174444301436750907131733503753100355037535641238970983542116762742416972123098949042849082293992709532742234108991191851549259387524614518625128596425300122419444406386256696795609411038568479416518378941709767450708275579896140795563153223368893073074959229546825342941236851869504054674051427477759138917898249259996546604982055486655426466458784641772966197304630973247223248455053480846381198229980245765579792220228406892776064315675917567516987201530560412730617543824777981330548294583539245930176856016929801663379386501667424565611805821578532641372016591345690304619378162735531473478527110653193450002291100395567188299029626503135661953305944864560910488267617282704652305821752545778247517229754737481074415071866096666640036424996927790596334893373578914725052412786252364382220509864804319919595074876632205623123716089645943058906896950496428023244008151534715427224660509672285311126310431332322360872943039101414710178635712847101895955151942799227133405159823980371822732749799602660579125784877573094562517219226875365193099912357063130042614745465545485798702703929027069581358863793570487910806877539078381848941350248608207244873855226244857775918812029190162301663051216061401385621065248513325515743875321745817638966379912013144967398307477406378490359907418225049617094861506536250117387951774016519122886900340944981187581466578413057227657508197789997974140215216891906697958559475268541676807986499757507592351390988294772861026874280584414909748868645412570444052462302011391784290506139448374823954006424223417149291577967004815146123325968054631080038907362193430559894803098975166659994867004057639863694560463932917932693899399822439862516575693808248504592343084298507390424097024396460735987340843233366560790849710487563443584036606371845794649482484305658299815117763122777229678554390097046149169833865363774209643831972506507370838476692547143131692444076228322494912139401070210614653601541094881445716940596861385637398175154682484185762814659644948697321152500434846503168530141712655743387056405017983579977356266135960169734580981194875910819516063203525330214026559010207394263012793270025976196178361263822783534106573707165282668798592410073204604065853217052280021556626860883723327921706039613294619616502113267985049361988247047248382747029652317836917333016025787816730618690800390312445565272835757640885011430483184053922358852948156304645765507147618315196651837224013375740300004531275032857742245895438798126237955643404556547683466933170548587956491332374407694999545120276573348370360907377671109888839613611209730758699747872535882196363221366622078814547992604435703754668088970273791105700958816654359353540432903607146862333159038492630265636951359777177715407012381711046610214268365443296996608653187150322778683369809747300951156995443205193813058284392387575812720717153202660489135696567888761941077806524643904310113320623098232914611874418442587229976179198874640233887745338425072236219559225681430043146284180873221077022825837308918802367756300448755344957071486856580708737067965348799104852033587769988441022557843467676061869098117410915319055506607432922728469879503030970428989348210706219281798892124296843013106165063112044561029097658799354778252463889365130013769963961133338290028468579317727352381481721287126605901766691689732390623320144838130948944564699610890812903810449200908209485414053043702199118707462698805582809179689978140409195404250448148254054620821560767861687298787101554276739210115445119249166226459817695786862953400434587871111657650593996304258095512663928804434083004913199038937507632861736176163876603410408636893617840081697263419598043437894144535193845481944251048515474523051781421067636925194302246922920415624504023397396841128292604640079361147886596964418681594758115467176304057917751639226040897710484283909797743132560770870237484688534945768661378641186517594299785572491247783821643718867889306734342495240883869541618225545295628490115100569886061558558808090201063667700748330022396440039528519707890338886154123358933298079132063955083091138767977518765739005648171247645012624976834662311981527983727585233218397791282634324917671948483686853309109901146593314492276994192058475563352973440692175048635115171868522430954607099115516850830951104144823876907566907481330021007189859538193571437514321074833637960141124308341651091882860657576482973441085005628133600204937167078836815036777142899981358200282581691815498207517320841656381569100178095375903538458086284717992408141526512469418529723088236811737388069368696367609931039858465235520901266895574085203308161714667798537433336690707460436981106933484450961970457796958476060088729348328525525952569890570005953333289829753339713228294751247910351227059724070830874445193089259571723611490789379689184197999526833487760122087823571008529055766889391889185428449656513174803445983777519232016966320052237513138219250948839249061826668324781509339894636859011830474294769364370986711147339172989466002607967389100783511558319572489920925099092819265333789968364392828605734568074856484333061953784066209267795975367843646840977253090433732938341675252117101020429371068722045082738368242094874133759472003876666187289851291640693051940144962801240920233194281197284900477282163558668725464325442882847758064782676247288956425989200032527160875632211885712261252726854751190412610510029383227339290564750798324252388272572074059336338013464397251271178500126586447579964072665073141837215707369797587156907331193922630336242027118321367161985276139749099702262037854074595240932729519444631844229762641583327729045701606414546761840520391005655098532884122092359256512474177527337656905404919873211546067891096433582713349976648301948222129158533473007977268062744766222717775233541227830387054536784935957337114476116015609559019769838834011073439833099497644887557304548660585536967543773716727565372235297883502524062700408334817462373920937634893921317223176702227150558428060690975762009751757611169739733481245074483249676412601467409807797388463776723913061104869075437892671134019324827310143013185117129363706225504059107744507140111785846281413843545305512060495002639617225739978046471919042391059136027331132196629492768966678084293763577381816536784252105224199563334243820340677741896916747645540447788656675491764650712737601384667800196844515938854561268962854853412729484351020720249388744834909660352106388142322583763453197438581262168070502154493603091658862745953081819040437680521007981808408514951957650158816558031534297380181945082996242311912523586439904637421507652745728325101352631462287769111339286957976798769999729166314239075012667613372841734017885202808520072949003409429184504341944847010877758454592028504927316102120235480643690671713742275915119403790941489487277008886797930298317880061311454709232474070624196568260756640197894775532907681767326397436246649356884389503415823358101156234162349233842413891106475957416108372179055054906127732203692807403492821256504161148506225257393903697823455982791740417085981139058482793289069889463878957454270462884986788379725578101151040929096526823883695614056802474102980609606738565581057162695480058604884405620276280671336368309354127270324236128536466207717787660557226624330094437532419354949683911291283294151361623060814986682042938434495217500896987147596549745235714759110727584388394902381593495882751343133329775659358310710123749285899262853591396538758607422885148136830015459233863031607944027213057328307804632613286432269289168137280156157858434426790516034094252833518447695936465291367260079796710566877102154297987602283077349017651516719261298418624383783420310433855103587434378837744847429639647906227814791273374964522643579788214530480422493776909181695892245544483704137709973951570518846298584985916009134986201549130760059716892348661970214130489390942702418046135552287595926107342304863641637922041512784028098287480631431536496471302285009763165612888027489600476620256930399289221396242836513638988578665002701245465110860425691129124550065230843972740457369289385189047517580214516505081353944372924020033089830421838682036040616331551482664272964244970245101186822136102556199225199299522458983020762223679044466543253636916945079390095538023737173685534634462431370252938855697360278046896726448628003764198378027157373528830468273370329761508258733671036885427232138675270267052572523965951767006225702348507699129633558103614096396708013558755874285308778145791544072261516465559154812223490126353579605284316893281262220121216415302665495696311147265549418860968850026425626172241658088497864800874282021571605636182914382334793610983543202690153289792517994711399630873551214604348073962498102979884177830292451925556355018663046097659387360498923995875878160197311325762714901525346645627732589528318491944458437928001116831400659633946294581946154166383128730254990174813239528237684197405649963091342003640322311187201541610697967623589241960977600576581138776060430666373456199388781218389206902378579255891386695781018571554620805665538117312496418148828652884071030789886465767472128477832830523778286968458568510166910247474707381358723106437707737078294296275799218626794645249141770750038068655110918727781295931550928281622516919146494553486337986974399089081251292625242716559225923302245759226321968836994052356143539403582176845011280487616949168866301024999341201130306599512857906786158735987482698767260949011588963376284930820751655373643805364120508841695272073482930815563033786068867484301607415614748261061748226948797584825253756180156382402518677352170916406920538601769141705933323724684414990971455401592012038006810811848109124247007935846948788438888652464462621393732014350812354094224155032687550015604805925902243195440309073949012577184916956815960794488602198390919684786558901844958590239099326986253189330457204744566538404768820861242485663698304812898318167072473552619349185657027298393489710095181520901671937556899523279629006090855622156912013493738080977605652696413912075171525079929460398339031330606335360203586777656557217536530257872717920323704693563605423664566404849098872746273333485428168887740740101577803222760899332167426572257356241689055574739601900132312330709608700444175524254185984123207619307250762616693613503553689919738954280524527716303532714807845863048604298549723681979876165639854927431307190684138904242253196377342661492328624888310253804777151614838613262954226400948932798379885660097208043945599122947679180894326086242155073924139014186662724186616212698065188063302781684387458931411370759831072796168216207210492012540924352515969267044276279984478775462054205308157758469626174467362853717488482809494695130451593080754525523512827436570774324539368968150609402884776817184752144468034645417018461338554726525103624643654597263509892585789191098494071348101392320189804415104891291825874750210310802331715737406822819327261135172807661565097363783448788790275040148407162653394480789231107912032800473391783472801084623305887290255415912642154272780258737896335040611764531358104124164169821281113598430381313903486267894109389479191233511017529357311299729738348884951843882304093491517783462026577493492164422412119351708483947820512276758253884617267515958461476615496208054021097706002984154029616843052240762612730673741763483080797697626005602793594598111397635994383532066223589403412065928992265252922383580519403427464790826197327674422518369482016431725144107502719666987117706648653107697394505510658578334878997056555667871715231266646077974861838608549594808654090987837065382383448508826689616233820833968119779039775634382046022115925428448288504879805416686922261297747399363121472675081082479550069504026731287759705600293996740390208056784046722133493826360429329440935038888143055257774652789283784238703917681191128431952180120979739492571113801170971594913114170860549769624818285883678913816367479999277644219998066497099961694659860874142048930706911256521718981522775287645629434239315005063600697568182325685268216855545709097892013756807876395940210532285447190298587843887499566389595610794928931307657476006058986220365770548092674721839430834937322181643783087074565103409396023215325787466157478342515714978274041566630258508997860036757500698172681686089747507743132595335338432766568916461955639509482212587972222758516204806598870385345914086177086880201669300311227269638522057029789735654128864527653920450537768301763195419950303100652502481752060270003074531217392433110016508358202781857076910253185125227478632510044089753460265980060044189525650134367328219888704850465935133523021120345034390962176263997002544145424300437849642428520906057184392362055955511082562186675643119590249786577576683936101464061644192266390390784872524775611269633512303149988035846672614690529853870694001601169761698763928654314593926037211706949232313447992703289969257358185565226413683515349975338654314958627742823695020284466784426072180203413665970616400090088755601965590458933227615902411661821010400616542981695481211977777028823954234516749300788874173578002920042017677236965239169193501883651504552909106039477180595485766150141935190228202178671174067565743201057667815071642039624625823745690421548273107320451622100778897516539677014671918638646393993601865694131119201088406622329542296116707070818121985975812334094649579855842902276811549399294670215170184118027716625497337526988366691585091960741056406286408108919152304133908836531796338655498299418017838532860166387836852733522949198591390086827573247973668554782316764676749261304212789547927232932205627822650273049696807042892538275498911086561320057382363423442948871239708728727242552363816224687965343626692757976417919321117167958303772971495167929006602555475194633450184678602680360448897561476638762652894044174644296864665401498358443886497911361523458274207238627902214180014509843300016147728234912922655857144136227496323107204094125450978443818512126878910944941176074739656417867294401371511061541839415434186212304808771797009683236494465220788232563912379790725195622664746996919069609764379554590137537803187167901338861588700388922617542418955971942586567020622831127612027682267209260374836144501924385475880742838807206953589357515914431874299563893871070597488313392492853743657244695753742331456573010604904486717366661195638451696676910243090334974624021844704694253672491817821919581313725499132464416444493179675049167934271147909802926166257474604426496253709246177152313415097142607875549212683250867724646561063224207989734514936406107627423556188019865185173945577345798390608697345519965168185808127493432015521125238269124783202828153428776508690168028271899185155131927108285276683807424705318611386491782570571594491937007389802329775775518951459609259824098133891279198587565262089974787579467417828485916596989089931456706369302962696010783562314196497141567149116483924723268237163916557401869910811415274651942412241768054745693002006950400032006234154546753627306345318785321455878066440727059816050394127048131427922902079519187249831450942334729141243451089862124382088895541613218237444069835480878280035266484623203283690182446078591628394392606618820558092702457754882972217317229262660585150019947527352551620060965578086473907291918732227030222358024432364436277648509215943273851706314575335522583396868242530425180748292299867559988776479498742976661974357560170648479619991036300786025389869457873437338836223852347967051005772880057218094286816395411560850570878457367215183731988425070519985169915237211907466796493066838801823313201981749982071685990323713716085822801558909555748597911775408796280636260359143545160122644959726501443406778244863191541086891525353165819770694529347471389590633114205103672913749563658064427223901957713122539124775736038274262964686090528405645769422901171059664758278569151659700315683204570181813177462783352801563267868851989864653848681746674438876091628636291925119715662336820013641587278094671176503457052897987158474424402472596937917184131294915428544958619954206950026834219005551759377565313046408399184567010278220364918592943104964179390501138549943938681187139928574474538114292737652300188774249196529593080099974361753092841732052059710892546664793872439664522075294945386904019735985753795251934126714300496299254327266688119615432777395805225396670688320850750385701809033171629686945466487721328757743152369156456651804722545695769727617987157763536615302282741145547991209377023136952437235307622609766529784523399249353274777674226725540856625447550542029297386542191314902925378703260550757554341087304191626427670786179283566143026553138557852246772273316309327096784762419880977863400399234071331862669945893040870726053067612391329076866505763567384504169852709837107888122651048980652384184989857246992485764203988821950308062199638473611591483809894277588059162730860723307702320109510237790473709231902591105622500765982965155478766819095849747554414224978729344644134708616678083856084386936364907811854149158729610529477357843053977470006810729333453450025361090154595504463215647377518588367268374910922332483907956463474880788538510347837294843205513610563276185881294313543994990602364827357410419808412611540488490107681147698566720685919780560317286107770411296607622025302688448303061781148100957595250061496945422792872116159268777759253104070186636561886312281278155039093847942155602055934671330661618880959110834265425174107135879557474344772124258566075073708030659430733887639627712221416927995957985628568316251834920470814988552531804511671946786311650886518316088911696915239768315963838194049445613231386876006775863211597831406850538811823458426963656755135349770376464630113823197198240982217278423266530000147638422384869086155632158607673586316868052265339719498132369619099456972773611751848882528882285572312520949137717569163980743045117377853971591530462273739446057584446841133450264385158157247878075531151883871089520164161164681097050876650445423377201097652238217731966466779447048592559283234059316103312541363351137596565745311353491825108965895838928765343606867761635084373772797171494274706881561551225965693271301638090320368549962395449488090195724548555722433244499039392191974909724894273176988528271314151837542590560961943879377508724285902335042661562368089497459261497593948392517975690471323403401510563305614817003642480318822212519448340893268377116521049107516524911115382139481082170179037816731659959740362512864396385812912413628517626403354169806867773588993212467031729944475042400791775251935094875286066852970457901933169029427393567414393626105872167727636230425548908242360702126531765023282936130174228901379043392488213036326830314345460733645604668254884647974741265160853337033705966318562784000998593878730813906428537216668851832783250639036140690084506951975227747702230963536416224318935982592665767973052436831780676004651443617423581399473481839782948763985404950134678736814061645868423782731026430811951952244161637949336220590082246983194469431767937664679394746797210808498444960439628453499881257299424358946695274642973594979764019176679402773646008163656017949024971557019490908572141966805010230523730845973359538199473390623666909229986196868978305804300477726665713693759344788340971803237940022254732888239748991916893151311198282079313917341122112489946558262271465054934638839055534937022274803978952803461394597961154314225692794090157537884053549308992392748565212360947255892199297771650029119169368602371428051192389155538904741340547574030893407741356502660010589551890364876258150264869363114600470750612158343634764857768224899558375520575212042499643866876488622265785886413916080669248810341241005608520051925684951176551566729814373684082087838865947809294220379318192035242940734009698718235972320911490796079391144879494793573771805612394911321473630998542388636963709742866825504456259764803911051892163759138292704894078898695627326699342387633547376667420400365727325596751918055309525043904199293310473754613487154326483303863864144505385131547892502589418710818441886210422457668348108435221404416954686698497074076109758787697443431851296831603317194720568922282988746153607239335316385609934247415021854783618804933572642893591029781410925131836631816396553929861780178897314359785069730793163497183038684469091207651933986851167086148306303682197658415439189138195856441881941379323096219090575674037374141483657262402541699395035918393736789424244853272484777777812768215486126281555360318017914847986190609331466984821710717246329724862959818236542742109624146522135598184653995864106522740348405233592481516794445892262205182612940648947181735377892543680634504730834071359420784220460786806023225591498802596117604406504737662104857976513234585857710851586832034306129490508338031393221802293517286395286795909645543730435734333118893892917458388445449611058387962683501315780236890985340305857099165854422392332292409599551269582780525789223108975797406768772372291354580275726858092885567427254153180379590140981334707975563784348953242135887841950350858591806122992752853523065121508506132596865683175672413834499824602127586247955374921804566906867758649417569407615090783696092331398905338414846238376170323956891131958107882902239537687168466346469555413879733274551471252255919857380830776488064923369288316059826262282059865975757012567457880873469958504054164139141975301500996017133167722553095867599853216786907031086648153849868670254654131313736901779690174106070740222178872332293872157394808052619911662066965539655559784225180567650295942357209792639955467755783979834641880695492034589158171221333613410225885003164408117931540469834720792880672323683896550533341444695780094381708976339596631280186551643849677819347852958312599314203967910603783673744292796246722189004170794857462793000165477323250078561971838003786910319990511634703667256533421938621264404280369166523159320395396588216134530621695993419201335935606843007204191306775979909163569249163461147088994656700844436925454544098810749155543188942467475065108293064263925590326643262851941057661270791203912681124927596146132934793716774566942245637028604674668009931603401919121281050774518843939599032871952848054324306461510041127419504064048052628228973577779056290939404161514534753972945576732779027231961028819618912971454363115340206872777474266742791487976073019005371334411749688290040302427755268010445803067435722228440757430927488000964899316069173807190699160329999705222669507240594894763062683463261111269981599857213878252907395448535007782421603655244164955415249073906958450769524317471139101595727489390369305469226473659893725133088422993092868142603776008573126779212474235716103746694734773313943276943349313519347150316780907148662817362454307490100519943358840987339528370490566488295818011312676955858206156624757083285162920650050408436275079409938642955564504802888594742910244519629685949546904718902175944337103548803577605970556095098132798059021107699147360917439583775092446575863481996203855534654059699632975016982365182396221188928362901317976675544304130748800961290057332524270115309539548425917723873667707296498772780976288905649773887825651311909009744935138848345611857080151433222195005972866099103680891099290238821346359566065749559054782063124888699919127860740302046874778016033485944726985825429383077208448399719193607521326741116106195030705748926176133296917660764358254861193238771345993798507899116369305906186255545291302691497074728143812169141467915753832866600079186029366922659156590510595598659596969418703891155542600379720514821180777249650437016628877013008454101858994043135850279875755129051680647436265105928748873864201983456002844482340848204324990999957048517447051502478899137230461267097355830934903675604009972865426381994483877395147872727456695266174768613289576075131856471891513959380042467126177263494585630472113360829992119207802619086465318578622982330693357560213912039568839957626455119445883520983521251025024933733413623219239440503102339395468722491831028835324869406834162738064462712276324971187677902127681068494509969632826261339339826303429198245865091339982491295172646619969636481221385732284421151594873481395198106094523098547131987633902291080557865857086446513961458745576873766337302469962182518103219906547676241816122397861670932042604410679292563184111424655256835096234237283434486537896389775350786713871237796384914686072673004439771031895563453168167874415930787020904368772314222927654313322529598973175091350277943697599677438839172932093663842258995514829829292344587121278842231438772888987624412178774969494787074405250110359402276510189642211515754461419673956028480158195788848941584039970624526473915196571279165417177140349779366494837290075287010713090443821185621233653060771345551895599209699243821485951548852172217411545314652971149780815127034629269345275767704005947865097695449068660500678394929728285066413145524545189324126349696141142230249386274247813427972015134771227159919159048343119737496475095972632915431191483073054517428748162436617115663009401995233214535979933414339774279569631178759100321291326517986404166471580284369157345562679014041722743480113292767130441551350362325084139927384741434552266039144768905467934208220457247207677225641834203092898926804569594426025030293928024571980313677726519788241345157856496497929457240913313450754054796310813360863657900554767936079942158122583619870763279818783030888724507458921705129089104075484677067556059015087877423628604835828694944359750057106137448869119338405939053954156162778795761879750880297168621767333070323705638378828492575576920400589145996386086380528880395315467299894266269081432972478730690518712736881441759646220959124069366451306383763995484404659314215885806099643785265870369451909660636434290803243034321200308669607835726704211975235355811646939385848714592981805849173989062867807703619500694617830377861486971829966909608376905023121919979944068961274555844210410902100301569000197233950116291677065642911745521314934890151369258206341079675550070489688300256705276517990016677112863313530916297952540526617520386696844178612137217939123649821120983861221415350176709932790241353108532690998347428668859951347264060124244599962998604313988393987441564079226960108325090451803797309168276258085206757610553420571434004028930622076900748087878905923097189082557586172494755596483062005687750230600054174572747491417573735921810724130378040954781881781268298459059920903361499816342794444498721676838575820534615975919181548174039111850969291542609309946728770240641767020350997562151063620326069173567467923479031650677467916132953858509812757955952800978589558737881901307201990281520218765160319363060436936856464806964288236048223219002457019184795882346080329145005201309495220981593127781716902016842012771094582842084053596001961451616544305536441466345267872947867725485259237972890144040530735946896882818622035990126066807323659735511254229839979113312709722713953717724417012321110770444343702315988883920314955923369941753724987769760386110958452973171595098663565271994888635306004559824210742112692051991363569161808120212392275299026263996527252370639432466458192821581731521331833135161606041158250838940668267607992904420182295783660331789232213142954409963387637723982204029533198898913073508491267622342741909710894660768054863121526034577119089918974782747091100897882428885767860037362518260088543575728333717251593864123719529434116407774173461943458578506387488073792836699074240628478642571348440384738195458780427394614392058933719542735399171608815591858086244411376220195007945181711793237519241724873093360504400552979465453903657418343473783146976825555204522994064751791664901054161390095992379387967401889412475425985872738125436792862138791799595389320340064619081872987987090325949027602672755983178597990026039861357605512464594722809532707391464341624226332773128624796285784639171679892778167945836493765508591387030673077662820196304851763662100051368208608510485348148351170554073039390618249426449556092359263273563722961599797831440070606260525848279154022161333978843339432939974757403664172681743933390172525327456793465140794940891125139746186366314675869813075500734504968529881121765185240593276954156003624140469565261919666655179880320308547491306555103196381842915712474113960337792747944911175255207800167644400277773050931255560228290548578604000447090310779768716319107301575085410471157930395014741994652929054690693712284815157353107379213625273188412850553295414583781087719846158026508314601221264854906786258257952263798671194425611172509179060732463173545899035192318316183132892177148051113370538285151541727791382421290574964778866116075348084488653585729006968920253427311933256975127377082383732786568620954649511828114619788559388896082819613157546331520556532336288074080304703154401851624221575557934472531909899669069120465077467860966757552730160766349536219196654964278913183325642570505810641388842063953994142174966409791237702450011618488967565284269462559214022450133331167232119386082718980408010279692518275517027639580124807528806264137027425246031032440094759834172231061012076993762554910575408924660007911323472976573110424124897656457998135434470993630076156481865366880750362701706066302495018707663496230809740980642087962182086725901778689026061804239224294598963057638614291309979348901989103933532075136339093937668828053603884929512844535143845480105978926689042797260100130565127692693380355277119302973243333476364515844877110201706809364528433859676669785222063329114830917620593078017997542245173327983403823422459099866547220639169532316925473595475335886388014114258513753059996033000953611080262572581630837452250422566166420825646609574811939726923485693070016025739316415445003150310139140182150524460533258939674149795956660331983885217985685568388527881722914908061411142525165720608380538380158902743157041341060992637102985746596989378678925963549809807554854521497524046527227891926800021013010864165119117806074103792506232165964199567155184001372465224557607364987274758993494490149030369348340722968172113624231474588672551416237937845808728309470106625980190161129311931256587683954773758989147235332531263366749958437252450146984388874805350470015008038853752861791508962372757201226173898107631482964244467449735426803497183760303303553615922253599277558005063186181422586679652113034373846704223809369369095985404914983823320068041485014477802402009777602666117615112147938551596511356993221005672046815950538313296842077877145245339589217746547914294405380784915402122661513396999798358616882750314198927848430625405841539751897308071876510959388187889955075992844783640600373599068638879962492698663699458453667316011307641049231366101364369902147054347312130728444446984272565274055358611486766622955184802585686674674583585677400677232198510436674586157999150629891565825845309238053435572801036289041178293523871597634600361704901260175096662194513183278831470280155105396176424685011403880191332349410042144999611712098822465873800529300870354610656711651837434763722985466320743531186070525425517266195254301205632023855408984610472560649526196949861714860802071198560769935806362619188101617499745070978075871277602666153351187195067361761548874782486173196368740431860886218445400445310971229713916835517546450818566990982753237088603002250958308110846948032633768803526319579774378570566548740767138370905285846635712740179312304696999115248120394107271266213865314165107992526676562262821551909413264649128525509475767656203643945107272740981841721142028969294299729057651867425570372037469733873763784271528111682045103791064773252287907189276317101374988829371880548449193031319227125114353228849355784997240968731203419492242972480129453027197642606899285277250291782280993576304611050741837099677237613256558371130835842078765626817617208010532596993298625710745448177618439933026178508198435998431019058672773557135596343953925565024987599886987096671642427092296449837660689992268776671966631419098570208153671195716508931300930337498817104664821792474405677552533629823622504302194197945250343745419167626799004334799589839117243382703957082916264047438839648162335547612158609417334628350718072190580977680624203438399467530017862684258908454423585518044768195938373808635377450162245806447687044631877760909330846418639985282235908182643351459045907665657400511705442770961283397044946273522922830822031268378304513126991407214379137959146283971689975361356609661756425038649855956456958413250400976890938328510420298946045360815387870967675890293233698882504143692232436531524896638205218252282015167735944908445320651095742167331339311513211345561208119925365446474175508549058924166662794961745746246917433731080452560906086918135049673690210711214109536913531511375527193179008733743452102876265211911375614830134143614231141709766590621021240897208213405116471440958359131069827948728602429114452165941300109993551504781174581790407651827524593877930312604720274253809631815885374392738789689336420977478505106010093345914909267125401801716571468298057923597721353421463219313611976819723926369746805116999630675722538627643365050701393052546036802885387816709728832423931517739034722717124117626237087992400015174772130260588571246422684735099801657353234928375913065761559739882206745381269616652114141152256259745605547507030474192445316800355296083432562966687323621828440418312567436157700538095413605712315573614198640006330928544961028359317267140216041138613646528069846235693092665974390488002299962596789686553554146968057225729510677963737374257681115401119591787130227302053064283516911078833238649449377188966095408856361887480934914672950582203971086126033414203528538169504903115883852436438887259740713108546135653072312425741858736847237647691302747559713513045936016890359387786904894489129306878842283300657707070685332643997863584798476698434058681778918887189607899206752918675298692780427343023836748623786605730584835790169579438087209716219102701047908828786231697935898503257421799207922604554449516355835231423367614905576302878775553741121073550384112203936712803123433150680651914123419225705046188365802764590222222262324513350560219166137520672405078742626166642829133747737053314248347186355989394804267865562979268088842951618943734612248294426910933849761211820367039936510198784565068914870751755251892101700250411168182171568944539104188052059305660880327959630732878792541443238973118546237697500702198606201690217130668955093781514286773887606185651481343706293183788369076049000357581071439858217127277792292903262481677101098718827870317987442171866007924948961330150238912408964868168414213588980650686427441794546969624366435807825014829482085929141043470194541398128590394744164938796934078577896226823179631911742747526384027183263614386515988663183545305029142464867265720273945594792972294313436329530095933454756362871434712094782373516512433467113010856040846117331299487943774199046167161616199968481489277680544361990820885608655638145314469477517986247651649170980708237355047342811849632280252403999362075770468947118794043613889984460581611615036974927267868902528229399637992436131687085362161161422941653800975541445710822448210028814143128367828084998137040821460510260650345572535270094836487455332002367505097304723709042899170887960071645511554937306645208765244392569977930341569294781809721947633406011353156400100965113986089401049069087897646653320356469481153793532926315913653570259024901161163216124831512905671168301522827316999907743188784221929482880225698118250405230862643279075068226412984771607065001850466167247304992256128759106484992787130228994046314328826586216694332945193544703164297329694075569761920787731185933017418118316781915000922597350882746708374921272477230005344357395008458680281641683636946869403418552004671341709542589711280814831620192215368559045554295360708837775452457201925107606774918594761025533835851379138913532917159653302237547874546874411519879251816190398597660716677735130245163092140586057918433625597037953723433890882221668424562130785530194272106653628614154057152508865287479313172915887233506525307768500167361388995733444063652494189713931757630862398428488799638954201653139261637521982548094878120667191201395009680507811108863914299428219857153682803306749978573516255868834007819848707969494814023556739630034581639682421130166541353745294559023449940674264124921558894595017677209376154425326079047638336968964024244590493676284671162123314326176461323326971583730107622514571274252707907593474653571390979138020938632246521033573099875626542500856136006068099002156052726277161560949121302147462886523636513514619423968198617306360057376097163045502048756340757211906226615557212643725068594711093495689351414769495322093130944728092746847668449667022132496150080954920882935743943859078000305768475828027143380788888868383394535776045490612455314183799784454768487116472747204658591944827762702137455425428494689332761218729282596956428452723841425661991432812860001505726902669511567480319061245272377215934987371113319814706438847608468473397242677980842094243893584563300278512908652692919800179145741577281110498797293001614780081190333705026090441755943976120244445291627728771422282148561532529953380990394106199267947926973437053952631115907639159494661548857355632148923559072230783998028534626851648166903007096740478133952882985481968298206831356949371853943907101920336603316552255538086620713871377485673423882785121644763698672895926191746378815211113489520550933164840844677718857516023728845237612328804578066474106637740517419206024968340435927741384863981220475743035919694839495379285872247521362877427830013119596781791089615916107840793202520142577189146589233973522744863608139913410221379411852183467391577310724267926143590183222297989221359152839667417779897889117679706463273549598906801209432252811610557918412205454127602181270376561027893551253085308620703223413767138795663875547600429842740232003209150897087601011599492389696494302222564120651017491409556583630261171811258096142624316403460083567404201705536139327977241066864449850990694262206247163358876541324110432086870860304497986152607899887968706023082876770536729210918518929423429891726979787963951575726201984867206143072899987252207222435757563403256092500913208022024536688026588148877723891647836447730727046441441418381419500176796050585546553833039856627591074875444528406710291437519813154501650868381638768332039246813052265894771359293130598603368072250227155894390504358788922394447630815005465016819956541038343182064344179202256400693326995111969606173585615233300740923692484979347061627598776114694188795426600137426018373448112917608208264517717999253876189356375658417551168210604796231147364294713556149501512006948446654690708700405179570587548555847471873062081224505033997612313826020203640936211722999648059685868020036762201108473210676601837999040921175857082601138669506114178076315732224592007074937250721303311142635899959836594544207411667797645472156003148360174604899477814587477210688740545551835072486893523996688623007029481764231660974651747378208670817544129289946569497760616558959195278459049094251959222142986549910300000878397035299023074328003176281111054877678778842956695251200587707234966684405918319805191067091693514470587088642768387117336101094330716842380732511092292195711689452510597324616235000805279757861824864477949853636586602038154084357471539004069063805122747271893476612394736684793325205845828753365816884899863454505120637488990169502046347509615920656966929921802447484393480900523561924618542814056674706166450514277365209929923684896526623944614614148665840663429659357693273520946236854318762328305518513436138631341821055118868048863700149707739737274134924107941913890221275605055021322930298243247793261188441003698599212140461259015609383972072281202232578889733288414509274060381787088408503960620449789128144338658117572914408040558613378586856266465021146065961376853254602987407154336534577383132238990445304376152149423063047492941788952028903041501621404493540728730956019303666931818694624090354644070714983808226176586240932608988242731171604616919364708729564622228317782025432449156713210017654136168054495321126628853305429151842193681284372960109982692313858213981724408553270500489107262991560327150314129731941512323203215817935090986836842886615897062304285360208324642519799470125511713080074010900686065157710051684040637366132397955562727005309745042300473632853358658814811122172852604382704810230385182199186562555566295664701251213555992944677095950919579332628069465056257291956578091485249483720349634129034107529157292912160560235130581104985086449737700242113219699218392157336270288285780283255071400946619724316656299514989618326149166102205508792247993380778149250859782582814890964582735210593328770636340530596082235652643389184187282709956910070182375446983937803252100337517749265990221527548124826409496184514221679423576384377532463949831355637544647250302337066613703044394500637290909619030734523300679557277830287411405027789770376605861011478068710444259904597712789583944337587603608565482289141435778405644316869476448093451006358173859338816037503419996421310063143540919755914964652820763096064606498221405801015950841736275952555084711354812427531739192970792469849195647247254981578735371573046044715909359351880749112957715627334588830827934460883689906664383492543275098664018012028702337244342479885752545483423220973604533080120713903917604002387593655726055622333472670444938589218568129557043832444398380177844902348171749163470193211260283657010532239655964556272838124166830805946072478621244897257905502160547956785784607518244671420160935593106093622604842447918327131651538416214769682639043452788709304469201524319700039011152612213211112542372596597582072422428303317901994604330878628951990189001725815673945434057290052043149181070710578491173331343746162006677462043236249404836832535980892781080915989093759843850851012311360362538853881140219886625420004623360276436687255089770334644932133204857464602261804757556579023761456573484903204473071346163200226256728877840857626180648709102139783975968966784870849666852983478505040284563421351530982869822023034048504176213464300267683358420442631189319721276523218993569898591310191152153324443489733116141502196467275402542367170293018152435055095966850073936413445196896410060040582080400187100475007785840449800694823553438060179543955730344672643566926862018241668956651999072360211241889562137238931153973937504341730533289396568334828364747241677887204934969341380593920596153682238912334923431865843239272890192358305171612221028893812353044616583605137208705350977897401225528325613677527437317319652587221589857227935790555488154972281711564706202418528071174884968208778332992444353698805264145377702710507745035604926933389149213270926740509335404082488585316509489517176980842048944085807323913129774094277265569290178350367344691410977504869086901302102308965843758650421843780859677989063979536541854040436887597754034671163624484668314011756948974385130812488566866191686866888461954025264660548270963943878433677265513840780575070027460936172826310855739348413852194949929113185370061619399403846264569310167730605846254417104123511861838764977139011018165396113560572589595557357286773417281900301511973972741979652504235869981160890604275569642600061120617643746532354268259437720622568678556251798670984117793541816201406779414880613982919128193397807059080863726422571774346110556877604255234720945406622452171518361262738460437755884674244170913892005958529135351140895626907615806559066421978729098098712317491418587398639149786551992527047993769155398458640857052858061726332034958223954569438155788050276421732956135482069896045384290713777433998546564160442978316427282515936326176188975069764415646675721664254557078387909667438910383998469187043596379087682457039149108569678365093897434818784204078717085167245340167861255143649600844743354460342252338275974636379708463741094815105821583196287978156318380751214656070256980087648605069647496608393844922752867041604074311249981599554977035141617501340975114402555636694791388557428764114740674877131735565677967561071570259110161311371582414634858159474766295632143370630928553014879874536734227752573565617079982821636482307437030393777359082079601108503851699205650337996396828818991164835635588872418796545169536464970586043275676835166439806864709012905062078218860293212868603160323558735448420282514382737391463030970498672884289537879104741510037221652268276846870400591346528236861978816160049880684438892895655850481155453623633959231300588235127483033140795162480533015093857406593409546672514285106232124847090988136669993233305467475788675504807896787179586374763832172465170356739238473496907541734192785138630175625419971785585390008475620399017017686712005244909099934033683493779661932773951185905372619548279872731546613085909751866157934413375325958842406132899537818209559889052324948904859120771177857220476585259822581535295625107092885425576096176870691246344779806914994796741291722512983138503951040038908740279324003355431404394053114145719720267573788932771645210357670571317705695474408961740550161346487836053932388367814046432954298149752492517859597645934189135553408709905458396016837635296350655939404993087637934346690280612511719053490069359003583147706585572262036258763467759048035649333125583532448538805122359762087714176611924415220576103402764416507482884747595933047409853530338235923543421926092934207124293165060117447784653985892894506123464704529202910866897783978396807843723536472294066795236042159745929454992604134486779475286769403378687521006741604847515911218980730384575717939969722616448991227432207952240642613699177117024375974557444092077333428064754671548357768142932266869018995510885950391150308029319593569017406024737083898832448946582887100253142451019119851975655903950758976629754131717025386867160533171296514349664801034043036372939767808010288480095059927947623439641105334696931198296401427130483993629374141264699887317033498398790777719420675777857480105623440903049805562129654070509221197881317871303363965017608562648694619586598117475817700749435306133840910214690171308177597048877346644509962917139208463546366260620857846342294455078013384237353961206339414587511272879635821953557618772052660186044753364245645201553381136429202678657120540435618259461692426854266084926982191162866716853628761819557782563160514857835756789569935682826714226411654975632652409832238256391168695068625515581544034588170088001414617990643276802295891982111011986715057757977440109051381141208372620684641864033396277117368107330124436668914699122861858309700157812645384505410960035557587020583302717976060993457616328707771700049844276081707390922444353220887208559293840098839923918808841317372227130716125658311987587374516172835738317861580261352177828980946200542583078140123235070068821525758638691058831672494089073809192766247730652552785661033905968671090235675783372710419258273687727362404056940432728475752589256579593852165974878490433849315323436500729692311068261189423985268972967805303671881678581226971125542603712097731472793479263326509307796295523522975418683204784882195324849107608875205167497844148913233790861894289900126290122602165692985926083982475649908200143387583026384680057588092855967418717714279467929269391026811585968704643029464599991983052256771453624039447452842019342092120010137262507697297629862834580870485487082385681523145427015280840046969002780019999486819464001926879944682347275460829573963629275912513951416276238965608166781054510710542741543459879487456551766735643400322203424498153718827286318110069033411474989190049593551605273200198701889014921766459657743639970939154274826068753157987590138995296736339046987665493438161848230059015887914085926707912456598915932493567029283907016874851182223322000057950204284472666321023433275577929449727878720324622646545710745947466676061590930813060645858890220583911827589536479492189479197191037842872282152841887551062558047671006937488453548775815222952304765112917762942743026028768650371968685211156821991301761474038576557607570102555395745739667082277887415135657704063164092792385748454308530815842238075179915191700039583627408467846941009842817203942475947097642557213063148269705081124613285723179681194857723870110118494794768119815273162029221616271421545039053239370830681921929118649121975293710472293400384381647861053344692751175407758541142078635155138657700839815416959159794301083068532922556212391531138806364064848515308734948881212140257049911320294218951557442842590867490053016482289271904336070635259585508313785292049175881015279395443134636814816077761702404907563442652080937518805707536011851863175357879891238363903990247491407341346120131663514811736194359997232113103578820784497330189652705655366543805166254439098500092145520346328696922808250812081543083380297417144460554731588886564496208892191792498671413626496697366191990178286719368059927034977122665658947424452240416531011309143558707439082919976582780061898635310559625797299528998664800247439708683020333994548645226414989601225256083930493375598045482446931065568142933646629010464232858278733815988520836331596625752989419966395129808685758905496890879022931011600295775886948163666176646879545386971885693745687828096340725614459685449076040954169000508667146688765132693987296609203341068720777336665179106312844411660899193445296828302467062758887748572552538026413727005012025856315806318822602956670607829205388805825798882127098240586344090393592128978945306908715007119298572244945593538187076904414857754840216522844468860646623138878616032027261739046746104757543182236324291052984654630714722761430879529727209512170495249622088168673942114780241399191651108337408233077657730853302241315880337068244632170083233643201861543989528456252195567253353132587820424637006730559643062374327800921576953810106678146255357388025842519547087882135596305361562543836249929679690486235978201211382585048125950048425970204867596879621575143994461140980126183475343595182563038347740512616248089692044811864537601611101562239814591487225304238859259818666551808553871667304392832446227708472441276960636626621056355204933098639504823361393186036705970990126774262079568782990679632855768379350830827748848874198282229071697974343488277179041539904798392716421026270407110759834294145279888875426252444000961573203830907492020154975782912770686651126447908659722888208734704222661390607493541433709251942015813253502137331807476790586351891654888622893897080205661759328559321608438441817017016281469789738240330665581866246842401675417961589733227075560609864168660446454198208785972025282818892294994590367964821131806700520211432609837440334697627918209364154964317957648867686800567737052976987576193463061672805621904865784112699079889873299497643627289841944059368575154752067418174964189081844376312191157752028576093148957706632246409411258876142059468776155832356796746969977828512539810818418175402211187608055560386371772602802006718839421143332662388102745680045802492006933382315277107990843781901945799746970360622449973075503799565570606159756341910208368725985540058185456193705519852448355780617326656013572788398631945538344135060522208694620012890343973465825708182167117275075544963417350224162017464197868660510140473158892796854721562768605306382895398099915398870105293670077377143739475016775980294237699862325747560868608437924462779175928477142314731602688212893272270879949875393320641813773107077993962037490932981548268325101433690682448203689374801399719762734421209121503497130083377984257858036993600925349658422291174111109865201111909200620617852202494883848757060964767443447562675739204900841175171203924969587792187674667511427676230182163215730720438523566221326021678088163492586217027335409311116378049410700773801522508469284013206307957084666337615353515252405185530523333106854917427436806043722885569202770905632095872847694856152417924863116676089961146166163201014416321935960954795219485134270936114737886979655808979251049648010111101366964183731698420277674817508101517357261698990147560500251746408865546795605804955868248186375241593741789385962014320122290238892624586229835049554790921071361332137811047417870724941790314887608835138491198334325538626632729449208315455351008718289204505396766172383850132275497507511481941883839017471071239883572644830531702195195866029046716912751980616063980582210779680232410002387752149841999039284937980546244048328972546032651387972865680315928659989431979349949275045788704832043014217446416594066934716843389745561736997261623201508469445879590047391258833950956413220220702486678592119460527976886304606671738223456019236779452129944877341875362348553184301688418514723293323811692627778315829776245525956166383055960949928087653498534780875362662843401411434994542726533564837172977134232284841748991019048435657710013399655918004866561161737143747487790555840382133099889403155979827170188320362629110671713136406446729131128713370090037873508203345805627793696948041421328912048682363326838131337832268386647578335087387700504484227512882410751995895110060852462882560952759623770101654984168724105094229082774659790998358334064080082875521538149241586154031410892454109253755605555021272103328127574766798944317112723616920848685495302209799798985198191563899269612189922967306938075821263176568381913767852101414261999165126887598354114649497981019539946795556538064352657633492911665500497970164829542343750465335765348417100256232334371234044182660410467743217438564842079830540191269647257512719473919342289405786983879444741080387647599615180744074491333301029244397743664139420007023691014988490037266608802786684260287630440051959624967132795076038454737918130984295364213995722329047441685958062343262220294316104887713348576071983888740664987916776052767391063112235306731530719761948810320996740168345750708988811437360175181874308748124133213249013175901372580852473864154421733719993105558041732493012243690310742441923494290759630452554253835714442995395242791495761272347543954843688203063376977541366014743660693117484048848230153429435918864007684129310206571892378888432472717640040057071191330127636299805273438151880246933380235132513580741443661280433890969650821648613848804450350610303275832984355496251281302418848880246926295930675884755624126011267495608395886534476424312150332376381168455370000735008422916882320590701291717452085177772006812377729326984575366299499362353598587845829042645017071480351123433451725102385951589756827181431827386765565337744349543813957145145977042844152362761101341827584124293313334459435006183653231310235438029499318063211475971085718962079260600757588906119541173420635257623913023384218131657308657986291492177392961393763980202507224865758303879250674450973572925875832802981508658084732259380073578800038291741629871036062844077097085880098088568648669588630727623788787292273146778514655035986888439839164348628448449016161916186656449623937605802039012266222674063531268717299962577590744795872780351147398361176056317635149686930838132023147811090220251813483346224713282091333094521991535703479276844262551457437282823044351271439493357933439112012189035867644023469070798931888991185076975329574294142059691017829519575317516335980772813432798290115779387820921110605782677597958295590623176485532431059435225041369039909767736653738928266203076616385279985931070122023256475388677449464187283482140571086536970978106664188739512309984872089993907310825147418137743718471557490622928084286244356643317597735064601672296876716868167765560954396951732763872141981974124961407120655121195797353364605971269142868283010401486467968697333711746060178731818007274890854312736626507114499076020004115708806023547547737690523769371799680729718489567891140794856018772755559717889423055514658379458532969415300543895382485557305841852999587633737021678213830233657207928966482757570164755949258500244316126905489140672261531685950604684831140864817626698031143632284888145551897129186894957179991120002695246188173173674830026296597541157284346172500960386616894079811851540570165060836670974491676012597180795596734395434918390758979068969742390208650859018138879935938368160473413847110171030143285562805063065141448478511612799161123320521178670468486140528377226576548580859573617959906036767067727496863351643522981223373341686206056467329665476850243717745629645996278543848817140916813180234776939961773508086846586035224263912264943266529661861286158665285632628622600233945650717152504852144641068154739970008201319088322033907661179318719036492467139087574017431838477471764499728568228930812222572298109888985767513248148910072395711978777738709758126903546698947811543153294137774056075741472814638695757337537417865506406405647685470720208487501203717764287057336545938752339737305618263295828123399546376643767026026395559207123679410094611013707849655954282989939268383003880535274015049332501755770153496325674617511987473468162142683926443106646615461945446034033059289231442575318763162914321573312716892700067999264475021643498747250858435358386894515658931606955321907443818464245236446994213475933261310635297620611238682725557423136305067641899186846360350865339002692472416704633252837224344620818925495896945326004704641251840700132700181477487679257493952548146294198577584789754992266717296752548738809422071552647111972183798009954839443824424440369733098981017741366690538856781407131543499806710500067144720502830131803672821362949495501813753255831607817886477432075044695749217831499687698960346610012803880126490133348619730149075254541120768379864632373442523836751748744983521458738861859699315120524419793881750846378110382065921390062687712908771091999057001849829848488041123688085048230622502951407076784723607357946603176479466287234657239695259154281113968052382159984209225045954466194187777026723065806906244486033482938893410901666747646053474129169582122697643005855584140193312054030680061442363993493613143432719154922223531858973923556492445185696914331318256894064081774824438399899254395750937257598136070174293629289279149397355234814215296514899907035310470966221774849864336223604569942185301358507801269553564418093585036788396513336123284306763787982857106186498508933359219343935275035674127905230763161880236194863709720412904951106539412499123550914567517236407556500265672685407515892759012716665954200662242328763238262805077332329583861054335208564368183086416736757860431936560499430619110280952002051815222653823700350952924567237632108525654195140336134082682976856667975618911257496057490001330899070247146928574388032912036464880423192501029743829404566760181526797729330208127166083093209421480039740062708143868342030710505673563358782248458187540387843641745960297981444347928320362013781062707138810400023904341021648229766005793013831537442825169376046380589316144563430489474198298137025622676940187612404456754087882716141160148647437652844997565935548733746197722855071841398528986423569386921821101443504120049689417691606411800235991818049650951170533530653854027139687856212782128258250395925314760400210718823283723060000705633210044353756645686326842001313058461307868004661147126392896971007396914265604575203482918917628857932760608751334062116375007392527480232076070348324766161003104983185652528726589841597803410067243515138845405173995869280180560033673598431522683539916986826375348469831813261300814594635426978791689909833571986666770141638531103798239600473658584235303119282868194053505615868071507045577128206261539837959561323514842818205679627891203264975625440212230850034267798367889657191630888592625747491834359450896134274966947782707217474935026893387374722335908987131938632304372671825931241117749276288610728070140800431429064533010896404611630889691789315756044853662349407694414899932264061537087300896608535746752658220887550169693681212339250477254243782241072327990058958063501521817150335472776336591527250765073189957446266127084224745840114850599559658713489093991100019944619299206153165196314089865625043475679443124794292509616341157275083580590028563110256584172716522346140535608609917541140456812728057849315565931697754287852294850096978180065389442563117276239638343789901950967832446697738890447482278746936227673739449939868071345469901022646481055249200314860659183793274495018912387090009236143788564309205281586653589679325944117914469544237711067017969484623754693732594401309914391412277728053558143732788845839440688434614172107639636406423431099469251714449448539322919535687633917868091684720948143348941593312722113789522639901266522182613128274591008404718175187898533062996625236407291300488860040607032872789934450036947165155824346417194015717249971281702170302819526763319522048741624002330434938712569673825448693269752383133469000267196661739400498430918620380228534387857691598589211317890683524789795955553892556442277708308095882414793084148623861608052145824298148870976501712339146039700125973782045188615261398300791883760687763302749843029985183953939024226758345796529552450405563519590532032131215085076527879308820619241426800184249465748950602978639905351426905026897268619452087683139387937688133840163421201579847494089064788314633179580409701497907545277097089726384761375710590329160930719315449383985514161743901019945924151217125717874519715515825062549497266046839917687590795790426697382162669158579747548074376147523770477995627799663843187628036447496479597820327012889759399511499074903529736958427708045914037152040341113308284726983219646864326072459295769077174346613636139815022858150384210803846724627721282280091849256497636908815590763815883202778443290608523166314372647883169318829655203429841933425743658809587702928357499506660775022361439599952535351982470801505919980625016789269284857109781992151895529745176573877034685406947451046225969614311469575547920143529220899286119287365810239955255873484788498725566307260292826020183398922351240335025626626836556906848912407400490446985461020147397531817455696117333774218390393313137937098631446047020718165321636525807836667908325513171076517979067809158975810262124290377915027304902472705097832825136111053544047032547131587044964245913367469739262023566831408253367504068696191410448675149738317748700124101682698837330840840847195946037293225079730027723347739811423708040285907730548800894290280190452161302266897917501932603612737072509825090015577123811077571664565529346366060641340241925251246930056739279217692741437554716735707702521094246463690092315950149467222297912008157948991759241037788891063568257052966220519389613962787933801870727212246720960335474438644091594784377636421564941354912016873305069820274516611883087730377951005761326862729230588512036703627434987314705933765413680887992477826734983727921912777886981182818346833088442359703654236747608225073530372533556300974552626365070792179674847038802978638163778721035121857226505151458389171297768704326929112796768133533161051562165928311163369767162092125025119570597144039022775270118503965046104444608466145382498061284950606577918877152140400801203928375627393099839899002034770024810052636706232881724682583954594511036342637010192563313350357705434484570008115742206988183763847773658149558102408900688622481732024808781240464518097905985621508999489666452123549884308889021683067813062586132390923250717197417360020178770919134513025873752028427677552635767030661180643586383274464639914087244285374399508365922600503743108706008467959461232716535632533143527345332365595979857319136918108621081276009889564117620054771193139044365140660654025021179207839519945200137410290737591043844719874959269971803570422243042266210189223496144613993125665378705245656680032484286838461716853496724946522306740215106768274378387098678530795928310846084442499915632019399989466187968523350316526314323341166110914511778725514321303685465680849006295237468690875459488586108238730260240939547681307275480783498727991563558415837803766601070994662890303218040747140623891453743569644224163805543937187528567412749653491767332253526438359317830408810265265473553742694577208625784088034895844562431467788049221250249030421630986019215356267188855592557144107313658637815007935699120127222305588880138498082773039015848259569778391932003968521050748717480498555991987931171192934490614251156487388359291260736065751322096708110132265418099650865910581934948434081349668207486448721220354634268387736296195004055270005845157467845101671736942042571127337949072403908420004886840897562566868978164706340395724362016817638327161958706904718415231229916580026402212415479717879083417737720778217605394024288744635214051515363228424732603132576857220905339935866583535265814344213872748635204662451896276618605852575638841782528545426404864401238777170966439230715196444632288534047636035430304152277100191638704124709099979000727491818138451526640484759515963701581736647219045646209370314937666338893845522064233220370552219306485830994254401659782376493339036013013047092121540261197349406247786663061481343193279444507130470826992799809671988602937376912910634547658987179136762429892472198702274895307449593929445798090764513118539023381120930309905067135445128408506172769706533255859876133433604280982298748731225144574687582783919583026481801902312721093677952238232577127339835972527871711915817230040475932765647856180668635037733576700788101245499232845447167249396776688038064781550273511490130888153538171430437154722946875281419272933219044463343362482332623525738057042965016580509492889294100335194878242965761334524653275973347865850274936883231230458656733298633382272036576841441698987240105134645485571182849234494225163933553173392169669486096642978752750557048133183544162501163221462267937755991018350929325888659741171979683488976277618853626586592984716662501755202383261819721130557292740152271507954516952320699391283703784913256267442155815354550485865789909776678815838084282083792869418278781617335107689637572809279523793208554485626032832305029619386070059296018936910887441192706047643744167433808886213194806579987928712211863078916732137263332018968447741362386465056381126013845342456678725485043336492143737198308936386381431099464692973790088321892963660419598930524471733751128420378796770565244342761952542049989869202829286411198460401743686141302782393742673610251336445314831276026326748437512666736321834698344630080446910395400541642976967331635022817995599153050717399822385148778975534150971590148454826746550420200802274721714674117761852020399730209320244361127755932611274027913621313754424096252745226294682043057564479804829579405299421451608228667609311596344160854326902913088096062067215143460568243075864629689159893313963550237468177565422081369468286249578227551448458750451299613296755119039466403872238951400016016845931115966606249520249763242965397044105734873497294371530757795232413711964939002804977638611203244384840431293809326166589346762002009052236436555692219079087373859553333769897017262920639717348213077522230626516157374206036595587487414342272959718113239951210033578750336210925659344972125311233936884029268158068378752849242968973816153234041507330863422777483508269933817113310897058383793732367910982582254096275077843344077703691803258662693531988561202918405793009322213536950635086887615250379158596833310163637882092321749688022291941596411805732959778856116355903715145736201366654149056338654884198593834748405495819498328692973572779425438013031181023724260712559880084898174218212362917379123708792656850686736278835813308579881675784207052857186294750765071542704121339700332728146615302010854570763813358031271086067783727351590873625863281160775254651397989593737815140164694639365213423214814370466863671435645712599807961873537927817725175324865182330772285268565216646327960477754828148699332207853457856448058742516136557041252701995136219050234318345751238157188435205945650839294304613732397128471335800990278431100706558513053047844194918444075987466242484064782589267239802548228709114454677966049501092718175068397231142264595057878946058051379567272766148708842334268686262691576812125693898907730027707448062799831303992028499907550442518266329049831651132412381637274910449581538928090480561870048451799789882923825847053517985445424926604018339987426688775467110749368820148937484501148773889335753672682810377308568724346168148918870885128957799971531806106348542504498340473106273307534279974705642608394991934739661965881114193953399027502815123754211655289760658134235432049636247185541767568836916857333364341732902142575400764445137737561641039934771013532370281532252323445534829386542026051879941533768990884547818732173810410632522475020996686135908837769057031235980593305652892092326838876893714270094160649692501621344280635119697640751129580245559608219060486174525163646758750596757243989245212007677779170957017109043699015932114112105347329307998922929331602890979846465982037666175170280300044162935238293776878704573585408665781431169530568873370324104931444741247549421553235354954977295832559958955225908527345774412930256698298113075351198984921960185252665032065769666847821854138195240790453015131987034275858657163577764695318631198803622043647950135123733697033719414208081000995368156386006203778079484644857066760503700719042135073296676212050489084443181771069451119374110661469339451044086698310888383224111430915906234734607661840231396123646341832492805387340355858545906869690482041502412064737876483508819007823216380263693664789875839172021634041439463514758020446933991049742718848471410100837319245799491780783807559303679670385522390292677937379418547712202316455135751968302405407193029800502148821693238514702390838462981991276012399874007031767981667949700688548891038080122107204024784299410617707245736194907643588527472531354637948161427144487853890387323709680805700976961890133655736352246404193959616417356060473019921333877284023661881974753387500295668494094638626089395199051848365036781255686608113618365196980919889792594965403480118130394509782707728682216019768929109885901010986774272745637840725697487067309577091515453880628654908206200520402849279585200401593710553960410991605085041196790659520019309264340821141015216697196354147402112817640825133805908079668343032579768051940662216173998433860248605297278949528674898259230383847351700465546496163078047138962631064187274491282518756261861342490179856515242276607813361660503314037683746952025456769287045945261068988219058418501727906448948296184736115269216634972177240387399737120329216628017273588051325783042912989216694423696081910277215748420835070390917055540471146579408082307287529771097603870238884219641747612402835013841134181795387187972417339826477588112080197846835240752431047060268876809230219151668177926551130291809270646096549600631467852599331034815500685431240292609854478079635930688161244087861651451961031740877323828291206735572092266702885401967899170358251893728563633565035711126742854217055815343748895892468809091919720334183900058191329923188218109902942072927106630465869819028125516388959909127376481984367013053208279412372728500176661272736594019984722878917511819461972405580156618715407052407494907466555104254299198561333096599593146415246757827140479872591957501028146023249545664827274158586501661612315864946422563712465871632703135529523078284566825972431013320181074038886346105027758051941755333889762627327174259560375210045341034871850786362526866203416926771756757444413875031108887817962874240308282345342736955827662707186414442284177182760940769493153625825340683169386933411823023313149482349776635845975822707867742898584917330758810941307985401684330062625765299195237043946116856564771276255354665812933286263311474471181158540211752401031847626385920351360549651051631148498275925189467171273217406017816359841415389420339336897363792574769228932129066974307387393505349202079589461672161841380653751467417728244175754680789088413038346879318228575431779823664863073503241881544258886613598770616176502460247363552158489617386175427042294023345076234847908460908469385087543640736729169956270677913903214674672189371637555682182996968030498043489418187908276114595072436835696099914380199411398706287394629999212202641478967023735340798792728626268259122066143608843715622866881947181709455618529157322409510906543154452115229745261370461939099371855321405804947050251726269636175602785205531530525370258243870969996320363295404908222417595692499499025990172468341796554473940505900970140627144468477598486463322465264622513119479333875885968739217928950069095882280498623768501344221567097305896005984080278720624696798001181432674510387296267377089401649535780485183723840400374675705882685494568053555175238219785509559965742560455076009612307159908244086227235542127975126006189115627170306040224282714270370064670384709831992436450005499925511698619564298464355185952642650980482528829600809925937249051911710700845205553762866107956813586997030394840134162229656745035563051800422181440040659989803490499625328935301161716292914810577584408315692517165588371055946412228923180185396498691112559085860510838556588443737761413994098574695117744517426444063400449983931044979012912126893929107260524393349021601331122905755890505285000788935230735125070015369152627750132753126517164553580312695013244858916877398880888896854895363096173169603962258839596481131959857739926296638877800963546470567991318559530205560222664408402548947419981279695448452911050946166108756821876495591466444336384682009455783255331384984510160924668143963658797909443173271197060244621747817474233822260904206999230848789553961277343243490290997328747744115782683176336935920362754233482156039475096842780628329231323590249277097011666870291308035004336142671041391887145403681453934751892995218468924882944408572452555830506656096035676450990329656787584108176040236286062324643045283847576307469222120733401400409598965784472295214648467533458363791950896660775007126010406912995802582125169193992006595388845252469815612599022982690533557184562316212805906588811074537490153857246872678036600573374276828670770856755755660363467167900473480361934186886514713603846011168248288840227443488992444183272126289095845953903938378705802884242329689906911346514618182588682403809113844894374567156133078590353783905683023073715846805874842502433840709165663079623295018821210411004963078269081660905051144332958163440283481650941719790534064248701343949365401831118922654905801697531905017869392225662101477920375234422202321907840064595562005858024036176970937499366512460055681690130396266926647449066621596551265691523841632482241767174905306655079333420360712442757528324790645592785206524957640634635101483144942931055831915688334135107110128596501177851449431689828470444036983418875097035207560286683635680776138712050998363012185875863324900097763303304674897956070837633035973496558613289184555339617269052001091141803710839579138928146526789167865390975575656584361597908713902515085662221024779727936183628114931706511715134451306645763633175291247400949074519953786618478413868381675501911742053434253958767454943935295300893674232694201762338888322056876247663716852780904812161461993493533501723340145766544481571835125542738269923899214882390275136609995451793744761329515754646751628885358810856217300495000631131934096412357872805018972636942672136949991843428525371598142423795266400644837542441711753054299055212478143596176854722504813808727362695829933834812474174485812797419300466021969560982499191000603218508800123916857201713919993681624945454584670193869014200228428305530896619529085948787076237333141766946471060221905061424988976260952679397907971937142714634021419449964645956043786612725598894727218127030310881286757753620830166207827490162790316006326066711280786899535123100109787906810253199574147607195232400665024736647980761996497569981081829591432133861276382378963241152454401805076984845518990934637865210361712031391617902939513365311698341783483808211213570272116178243782857102198309878910875226145130785234858437495323735743963157179392787015270259534962393586958069241780944875483300228828173987674456882168154700954639384583336412024554088629903340386324423754882655415541513290729371073466405140238554158639227296481484514226248672158757005671243825494825395880005150622154117192177980653501053009050225753992013664607817712981462236075294971729035064947071168845764559444356048590043842039747763967365854154906079253874426896165398237368853212560173996358689558939431452740900297100692149262149034366966105966129076803267776679698104567850230842801660813811419653171092043961360352493416827948332017200503658467592300104305967445335459374522118707435599194286596998146149078405409375426860673668315640995617479907406864489498763143981964128416726070320472012432588746791942464041388634823753602628583349657884313766632845051408197637633835839468661438887683333311039980618405707983781510425803003860910601288426754770619295516553556171412373436486311635400871905073071889968404561217923998570688438573292029644457039647692827186165692077938490150620697342228486519506161838610675027103807529409314812803600809587236054179388993595627178083416329664853544371612227622158916530105598751446873052346891580106897538239844943254521462153006085318761220394687943522203416373357430362638489526032602934178965899891169974604132930558414357262938981534577873195272921555937873216803201827536664585721773762524960224404373210151761230500196686399464589679491838968857941247359208416844741988085914024374879405544723641130744670539322451547369625583504494443684589387933018068307725452849470736211138837315860493651902477672866719027481941443387545806522162440892889033192149176196425351503442372775302580632343268679934594853203371300792534603457885485605782194951558559519825044671238397758749937808416310153658351380250691914608839106981395104480092647298511671913671030122598323038073546668017714317744010047145428548708294164503478394078591711049243950869518678438435912467816076659188403505596152603466692215617615288895242638645810780778835584467751200407361932673164925410288446310986213291529518040210794293055700620539704103892829069085448920627766498076265274549546661475057824608877885599670007270156685772939195018638699279210972938954038279423475170682036303980791488248898334269838489941436272091355171369067049425799588005960806464186167741013354058032494441597246520537380780279532627193020917333341151524203682327890937414133109256359111383636592903508038718489426960427095459261438235566463694192236243336478270450779171199452085426994383731464070723334175433920730193818834180977737859599715630364687311391685452284363190047606776817469806728824073016791487841036428746792801965378561652323827413934720129701763334106070823752295174308002806671352066048935035363592489742873651514689025394357376198230748635304309036751059435433563715649751671285028144847375482611228523473950233663951960240821231561259496367420767047694942962360782326161696164463826141769535515198711480129575796542588204554976093297721791032295475689105481575819824174575872503712441508309535879882544025442657554296064740116025817571277275814208670798786964777489880873737524817270468381285437284727569550091319824638018731577415023315248486816466359622695735838839498371581999803323776495054656387664680573226131716858464199742175622638428663768630220392818082556969132162415908447305343122831794543040854586705410436963103852730564225346047087908557636579235651420891909113594842445947014948881991327396426511455406486395782711437327832050467235136408567413896047798789765512617363892339275433240260796983842959791874608367531004873918786590306415352350927009836808318400014629035661899075849242035801862007389806087599674539997625337556039917243270164804280536972957013196876053074510490052125604858524009483743643043719390569996242555875115408045563815202293229760717444170161116791637850142011448694658410446501646884182182631380005233176854411088612597015732054113279775690108827180295083077619370590247191506738754071045406842606580619160137359915526991885184352338961048526559027653531698526913877429850549122670119233051483304789499105319681301199136123675054131429669596748056391142500951295800773144035919355470664981329951152749692806029344743083553925293324875371605351730283831347335820646071541206908376552469467791279713985853179672957215562711048975347254578443813652213677919166789423367018849419158082445023355087173651418740009977795314681014797756805749593404489099781096926887382052853222438920948665707653464522117954848630724911061111694692074492845692292194929336445247710027889735693672476277441191663038277106390287611443932924176768994364513190094356753964728890073076167232980547395258534310662634874182033520852414657832814232641871521260225132117508882963181909485530445781630640083526328810585838016521750985145998990388228861976785927214568903061256451627654136902008446290299808844207581517581933151692963541647826408238255487678672916417393072031858602649787538627734390541205893769085001630532523777479648889687776148009831640562311832213013488782873338538850803661420570820107612795494224286290899878011672000643669824988662311306940704480163364172050100899497894947705442820694192614136643841957269082382667096253452494197293604553361856511801943806457357005315998414803230225272871020855332779994459602347338138261722717790420030236169864672961595291785354952054093736252814682851326458021029452650869762744315500188015673841350775209979288842156166103933562286694890687375191105922540505012142628649472502196036202104494416001169477841295609872723244509532036713840751907852812280364063039125164952443603546765848259856825733068375427419625230434558395756958026162219496009649656313081396756376586144556024270828840857863262101452412970937840245143210010099930298773752341406428781005402393926955195319588637812752557186026055709171120873294866771807808890827388487449982819768554451221405886642817408759430260017224300679629265510861805201248851173444066355478638938983521383684856898500322325004439339407005346390056497835977425263568638999772854356244401588882809163845285498125982937735143295586732212468254225821510541998348252064195579946815807393925438585793158636036646958635373936321951628994581785051829550876604668897107879479321179346836672993908191947681204597333876687710120476460429865148484291724486253761629930866112309640402206037206591632658641005222810778658714435046759224396143399063830243066177571452848953343605045082893246190183726667218086481286985490169671254190669045376516149554677106146765124686085468219980957012575780763701889648857491814329850228153388854293139064941527062357379823180241526083061788365966115291808926337940828573038219173178749878174192623041276876452133748043020766718039267303061529814587693843311890869393381576857911739619882412067272759074717218512821676436970942061972322702975160396533319168075100997989096222117644761396851275248748953136317480323704992905515470204182342926780490034492226146625899299305138962566319417180067884135630607639935461105682012720196535985856937663464464955789368519021899305361731514906194590815767103343581932600064041855198575275362912151135593502945286681492934088014610199164606501080617507146906895242790696484156506744765508230982646269158499716940495969121597699214500598913862363817089513142723600928042013654591138853796469887940139747447538339962696338974259289388467361229812614518393975729233428458827057715959514994263881383244099629622703961947533683620597439761763085416021739549026439084478132082994602457024629610053233248212285981689405314614617105749012224610913130049228880978416071075800736304022455007549657272866293655246696835259446747437629326092993658889570170300255210409680673244048151731695718361024548177181050823253354599451987623353261039581671357168815316078241440517139445999153181628586894478533370989117704788577138718170618828962684901539621005631875407318384086594165624197451453039690252198640982026855080660570807125094047653011248627970296430104065480049625486460746897400179361419336671703079247231350779938415801797723672053388181296614684220540721688630651866995855573805829404283526341384258523241142871906253699993151416379422674315322477629037666113137292026104563130125116742230178512168074801491174676360392957836818350568232099747560090225083344129326791952369110972276074410544097205581136200280115167804165209114870330444230254082790810342096129572541794517487295842222982463027849839323856611678546653940047407758644108137596405144326554832169091199047320792761606208083357891974010061302560213878868906104257215162593329216175126635843422268000114976250408748383683144232538967402927117359240635010451882117915360095179043984192177043698394060850824417048773344769404562168786088769882096077136883987631201070353393583210340635538955241010569604396350055354928681438905002031794398591762428912279760995676813248075557838706052440940441107382478673651724845800984466361854139660959810150839129132206168371526622235683131414716360494605923038121635540937397675762302405816790239732322488450276024958438586583291831734823049725182111669250877743147472974109123264178247503090911280321155794897713101861164477335414883902352541301340628532508532036589617003812109895002732252558731917145310824896318283884943569350789910187547634672741007146902413807596723072006132391471344161942301661546694581020808807577975742828444525333285652906469383583886393665575054455062842147656837110835805338396699237955769975964092188835373136358330173977679671836497820419332715205015548569801819290338118996404211353783186189921147712139332815319484327971356275174261612010115571528819468299148543111478566596942191785660418054129411331770396286323063913421234720298359753553189137587053154011697356064280139148313870378344641634484242710902600291461342711516237316333233922568370142871856114101280088213891311215374328559611704862598925839172114031141692135764009545933462258004484253061915387661788110554664207478057728689267944326861692053903087830273261957409906278323262873225039654933790351709432733802717927259682261267368943499973077789347460700646428793423745325059055413680245787538788902002366849346937989803823488624848870280448909424435717934730600147659556906522043246671815314188017386836251679108903037539782430476769239297833253284912415371919031270700280218568303768134617823660596650936588884701353940677438090780479486051749267004944263813530414457341413732782187418619731464593881653150599692779730835841327802378835681973787561809768743207456803161317775754879047935381230864672782157661132882534555881554631863681489998661030877420851983932182835189818120537010023194379056772280541680584679897187407814781904807901274762990536434411416121796567705332300582427370374083613075371824727226240819069937183390316073680690305991627655433393703932638985554346115797839192478010459280243460923020037962182017504491183052284193708621147154070951662120042325549962440552236005377887646793404004293537262407209499371980703818996906805442008671610425082862593613863381813683480973070651198339371252633892949750838796417595241980400000974818995434661503026434756685887902936803761828643027036151239555282105926594416836874425704113877099897730689027037456812727792668375749741138449444914667821636731036223234784736614812824874029666055203019193210526167755843048482873006234581616901264191308283106019647795071916106994313698319216175504360892268647647637093841522385088485549715746588451179004553744239145391440614858404311666442896103172004356017112836923065257147043379333204527765230377267119765419976222347750921987037505136586608093509234613633243911096114150372845396992280300873126924884890405691094854836245411379678430337558048480509675579966012456821372918010533437757455062688482751153084596886100439954968551259748620556652189481835500331042379111556565414932097443021588519654407035463354348417090457281189381808308388473057799724983126209197384093781699601246545038426548803068409481650523931006769731589947070278846967020171886314166486602213807046786215291317659359164914617059919288305095724789299173568495149922142679706304059991329380255258172718187515818421724385182781332232404250695346365130512513625050559225816124557299210914938487959006978908064426911247856153585254074255738372667967021833038556077770893610555886154016847429278857718676478934900543095511822540719776447753297785372160494005141819317187119849535292162070822791715700794812793264227147329243324513312172743145371881412609050082304053134588693323492897546972991614796809307693731643784816290876057934186688092868700801186285992219621423341991843318214981413638890200929935281975461990292727752813965723793410350744564215320338944782020698927167481593397805129551786319350774989530826036273701215941967152907517344324649311058671880731105836685550427572011855834221238012233002501187523485799952696481220005200692758205001107236627613413587675437635048524335734251845288631682534472962053273857068755779743711794429519748464107246552179019380376161836609839543421173866298884738666626912505881729829141327953642250337752074566326046227198558341303803928579710483098819055446666469786912289926890566984250663250030525088801375061836044038227888875339541681289096377620182026143683158628124936892392429872583623235732854126326276450842237608196785702259982356929151508188919668843116083480397793656664563880388815271598597704347379099258021862100048082543225993313172612804697151217597566125587995751788884408511421824952808243876503496700181496956817055097020698919533682095160488378308985200514253227183815108961502977959313988051415600367237033808416991553521403165925857305276139107916226254045123188533667515904410230334032549963040187955023945080006566069604053709562394161566283414911814790720359095730252250652018342164370860915054812606641354437616992896521773027188733264874606947196618030773916561767715090956362948423090803718953505653140586793865811242472990447061403301638252423862441662193644444805515808528993782015962143951020763244545660572543658212391498355777655004781087308036623423649010947655203544061622290275173148629682341408486911421903418885582330351019039587942124774582307236787095478750616394811072915275187059061610604737496320539574325628612921403337514030479940962517060875313458735278921109106460059714216173355443749705673096539185112721969131665585393315768677237822773358797501645199660788438506934610885346871874802147076927056938097903891657523093381256674678417198296219148280602953078641229084486404031807380215446716507523563606719277060250372042725528222750340931461886743682927034025384624334454523377704609247613312765722541612172763773713051718193587727678965696574006851775586345394668033848970557111800597373190745570630593977022099071311501590187932132828935174293052494674052730797633741873476472430080807113471706752062124074315351131050282798900223271992565466795724949596471181355330806750734966757156606312818269994365473355722391374452765438550535005570332741480821451609824385940546582481052574608094084543197757085426572574067098722874911186907356060377609169031829651095085577509633529387783137499920142990092518784114458643003956518724782716602195189457408010412488167185074805874473379669587438848222048048633172176946876666536597908007161751176618895263105255676018237114560807579338411679144896105591436412395464408447159747854156096270570878727938701506160086355374868319263245190690677616692215657712293157050728875515880925718082232914005494584344701591798242197673431070600492463862033740483315531615522889505151576455255674379001908389126131656710757375087591277052767023967861266650598217483888594134887878317575329116798873888148934407081448652995758061571813620217238023147738577296361484342629088897455754088538598469043832841206833460933352462709251172689940980842057424884190935536003075557229849630777141954955318210478347664159225503707028277438785179102650119190188577821057701987401018702911705493668459467345985167258831907556233733486282652547297868885452119127926793065993615227165315772595901002675507902763788562630805532259068834705755558142587654704111133709031810165534124344159689003240865995378587588420265293772849267041417369496490961921205063345012964476154179929423311171424772463180158081605608430249473222179961434984762017591267545294595207315833172989295168728642040052324117770449340870651429885352657614827647390417321440407926450511741500207116644449070369673749580738047063708550760782610731902875173883550281371739707025385867787805895104136390621210650925492519467338670118823464997391522296122058024316642782665196675925791365143839870141900226659712476064484970397943091121910883078076947812346546302001371372701548461642296071549827707244501454413515810386361716283685757398371511518328990845216638675921866723162614306426227184693611539840089423312161611605431184059739308570902966010723835600378200073427106443414959201657231552652204808355686712729888164145636683081251081216727352772385378136876984073047106796647705782361637164900638148430735165370614590434765516053363067500701800922187714992367994371756381106286455059370999238044079978515813178332240874631115320552919783227237164347249130643544454542555132471312524171522657946012667146045531600176652507079533949917630471267012113338608817327593383953803835230814203857325412006086912968344680637219431446977952916110662374789441708848515546222965766767447887380110756094617362337009738663658385714761308376775586717496109898319805627699920482795106773257836032638983613173132368962524167188455780208853859311366921856127019277400822107088832323720883454006860945216843112699513648094592201066317343968100331037841837826930993915595422008994203979262688214203361616289954393532633206020852134861449004759630941585484470882615089577364211621977507194985969360315726346886307362903175929847896577671197486455115253004296755713093692584188358161148406086727567326609431069168799500276226710645965096176984302083251521049699223530813106696977866218577610362253337503245289381105541851271655242188044680209503711636901416264987859513304269462113885434353683803235610743785821943039304647674224924283229810623650236548515808891656792497604921394402253393270800560008969674132632562179114452339936027100280959655963123696105547132266906373209762470023489535959237945320902788983846104035565049850559587172477407272788820689985638034680839750117054125772549966707594437653304489156843375275684123466763755304394193869393865358631043243563801916355757415445161529683965714931505563383414358942571700140128529227662269436769916178040091863452496965678184918615501465743738077934855266482001408775693022486022175371278148225158892645994971933950044682372783636825384932218870131608463339556911079283120080495247002054835567251568541834463570708100310562181736622064071035395142272064985022145274698516495081316593848835278048238530089885757675857924780362913450587002921850008901341043139143539506181974065843649747705105580130675564829984998754748679898807571122964532863457136233363339475853032781859230319194572255690641303416989259510428872831712963914847541315001592468157605017835908354936078564337513827493762465212870643311152025184969358481506355967250789878751367700538892859068530043423734831616827281431909617304790549422875938656811091085620024288761272779366941619564170297917190198505013396561640988320636567782672573682473722852890379045993036267414561136064017976976153419092432039521249919162834752540780553888463767395895229279657540847029382427459818167981153222634613183645282309302185305158686559132342665465334751365945858542492388069721519529378570102226454813871488774312867102184947799053116057504134891480929613590471811756122175169264726465341626966560118709283328285889605554910426625050980398541840386490152363586187981444588327906594541686538772408202193705844232375613482514354095548739078700282887238429177837523547225837420085715489738863263676000765390498241719228421152465091276786314037470422246903787792471145871351670902623840236697480519874622585252888304954595146331245676183799548566631044924671837681610026431869656992527671602295805776984888299510781843343504329514593659218293545106915726911441705248719025730403617076115751409977091599563777270281257493967836559162800416243444716569305625152805721475298477023706606101719014925723712624584584111953077007446491624209660477132754963509087613427883680531945986195277358632218662186213370918862618518508726182735771665587823536562444902713774072166340285063784205385370820052620689609258667682581495083623967611357069531943250028161129002918695607202118436789522634426709617455626587585020513322668447989028654798727849697532482951315375653085193908180155084273147410487533345456075983669271029381615228803010046228313149304679580778982145571636206736341313535698264623617835150516813356664463212513296872609294517734117979190803912286909242047374688519668596615991998353099490474770807961394825963345905297164334987277633749146395833515582379574586522008992101155524987716097873733313760264512650991922415781295095489415674583541534527717916531522817246279996785568076957474785829477513147172424974796487048711517513156695853584321324230332792786887945756918011960551566446076208410635295193622119924762284691262869962949068002370283901300053675658617863653919185193246569586304933528516510020420975762655510981591786731864057715737956303310469259097692242809018634859386983178173917172186283414961384212677961787321445575941240009742824034481507620650813260891006669330229043646327859069638006986989620028269674659054329139380129841384325035537556579908865964584726100899656844835361182903485419434183048512064638931357038904426403744405449680967949063584307545559964322314507165733304388552453068693221909957623007841715017397480743691358563433112374567825957719337967649953790215280778092044813261740076448859143736493094963516626927885536483353733028788221941223912315488740876502872644946629719623067142632608383279674209701561158323365725845979145426315914406237794573290176831500515079808645651588776642699067769412297252817470423146663246848818431280070715096634835228997919241240907591053418896042582691493363073456686868409297907473649293867001484274928218307585976380368168219910239172655848079111057479690086667836091061081501482249760382047572479723812853466203586791170857159318909077134623179244833007564688858558386017655882206075120745172725167718109943691641091010546019815090476605146751418038309662906142931029922188972703145856834039859908189557840928102828000855176849555134102679419248789095090081290395469644805710038171420332461661990479543113156028265271433056331324848623343071238772081825706774451151528162446632835790248620130441748112358105495875874104088506504239667066338799309157282511464348313090086068571052564030081392800512885780655731499827017780379042736947744133986458666989666809042868989020202387891678445267610757833558114165231201842943213349126121820614902180217383903981083978854374478117123991933118909484296097118259212775559036955850939884893697962386173994606048481734361613959699161954366946311292269983375033824142787116688012319313348391714975384449495227941216565096101128626692116772939918428896391738856089663668857127379270902570164391117853049623453794872586866894027738765742251019793928807960381138609866686386460548129801084615815559570537496456796955981566342983335777212364077156999648584005521650557388394567313774673655996409300092574653005331110421923225607004657735175794632489114927873222827298299101655349252136081616188401248302477435777174025407719827206568080209441675139146726066585303359980853607452734654457434124300189409618589847393373707865795390068099471628099719752613882069222233093414298661918072354944259187316194687399768735692094766819551345126780689112419965240013540336076496389377118548167740785866739433630923756036712855661412782687257657976979603700678045838151598261369913756896440054153946461345137879414280851573587974350944155902224336676493112259478660674535538801428314219648703081084345746609232945511988664377043845885266699754690566595345343529555553179169420298038110961867377226146274703536034449289053616239308933365476298745544784725289744013207103036166709483896627073527859691341889870585447836016978211991208897428766989226798215560954276075285554794593943000561537247665051151747872409265215660768892719353924201551799695433332202270042285576120080602625751064753919938651431101418366589668995274542846714220061071258314355557281910618620647819024723579613112548884867340121640501639380318707766673617288445750098623587645439575115795246397009887677661823171041188512151901891459751086030447963101533898132192629858261273111210415385495975136833914295558665130530968663386713975100044080624820273121098023660017300717398505603712604309827425298990208442531126989565565245679038259758737885816976111674851787349340245196564562534996073627863308015687546161909800630097260148387586559370289842939370896246435289438832271647641554623842243297063363276913137940527939986822568333604816107017425671763285764164601198576424222884923318561616767814210847269120331515870150543731177638887141368809316634594559458541315876597678075543660940922441754086453391765886379979717213629239782681721225409952308480005283100334611311997409229102685667178136930283755565293563507274248335809849665991406293271744961173777770984681581565224650365795176899880956513659923508188123324288468410762651168666066511638850091165682596907191675645832238883666021233340446910927382084285515870194437799373276210600905760112469754954988684809579089414265954038629160776567603288117909247058937756940421567967204903626738437599305445058578416161734925660314560991201745894207685908182873853944478242923556909689794112114008540218872593539917734967855392066749905821596640840066848643269867546541420302889691649394850983420659261377763363278761966729695280464043336977375725201219428849448650352690055978450605437127035921454042969831410913876621582620794674641878640496081719895885375704500437099441372716491802965978176680113658371185139236121697785745612165002307889334218012908993206516159307876464417923392880409547018875022709899849335095453119288555736589163320848008503539349703619432298187597866283450924240528153564345037078002420080668154824351580949786565076871376428721152581057261059081302741179308942248824419468230296398020976019961447047364690858174576442922761001757024605951440749481233173973892016098937142019920137083389637477891061119114831517073235019667915218985147172117733681300758222219347469809701634444034248385988399162019378388677538698434265120087370759402049347422164828268177607121254715677582925814718878390546240063613581115384103710825374756417897540310399034806954048792938393931253517664642253233113468428987765890320176908482545063771071783816689310285409821019181947153790064253579309952549448298200399961949807002667347328558916190990937584778208622572126991290644431358667653096969286805639533119288241175883228367029691848711293609229862106321145043339897039060434541663041259919204003589612554179364253583386133050987834195433753216902757605406360434748380800568072489103284408278706865881170934402837204873771433350997319333152418423322104350892271446410938119625847460213039359096187942568003178077121558469750020915560570788916801316776618225635352284207369235043222085709964972873693369264326470793451219468633673636814070408459270849031640799010125940142707429881646946487217427270877315210016516326045330820713435436612921268358158336402386967261503154464499156435287776713784322213046281393221343475842622690751961860349189904563550692640548473830342869885681862892896046877890299463632402283128449405336499397694752574277133548243813822805421812709392252340403399109083366872000401352255557718030020766410652648586764175036937762734038835497657294076709205205011996361079841296112922946841247205358194896242809269435290888265187646202880273882106450262445908284544461084961427174086259116082508352600451271274444203694007111774799467323757883726378397083496518236651393735181398128626118858455395749809730784797844175540545873096615632512406980460865744564802077121784875406626544895952085197199086694526900839192272602572265110096049931645193750253045739299684301500852328710675932487085767032768218249851503394214782328420812252839423273825156664848194699012320020086711138851697262323422025092338804233918602431913359568392771483475589784572363825055845057481314324995736554648334627218767075915099718861253425016476727778828849840508321134922637882997828036851766834741758089496277820815462015411065184470069799428937560105697065555992353297891676238819059560957729543205701221045253561584438893573040825108245554680135637348156171271258595501408854869200696114045121808932521756201540933491002854277573574897122152894871165419874647840835313913209308015726893375680651345329550610075474700507077076593978318891332164734477910840909647845073972787687732369465957490514998193807274932090832304392533627517310436704163946916983174419588672765773646539657579854442464866734024199007117805773546346884131387821580403472526669086003968989676695587570511943271472753035458171526728965600040641989890177604296621487839922958292916664633413764262611757019757045829139097267653008812935015639620819834204622573363500559911623526074143305818957772772277264590256245119782449057138936233227560057140461437329615500188391844572140787946966263674449492002317760605114398260724020532225399729673237161553889371811035531378136738202757582709234840166721522710624349414665025283208170384556542834061615846838014665705143410692094854876523213864602083693070731801629507041173219606643288728416616981111648329959569593388435826203159589088305723985644546501738790432948407131152507537665845496007135068662895509627348455543636130415804343440856455553988362580687497679871527043211622905418074437814898852347942525683583942381312438726916173318593837120090783250267735582083132615103644727812379791197991603264927831631298393209503958641686924398107886130271537466188502009492898765238831220315488490229300038837348378523241926463168445617872841041872888412519956969545104534295386355615985209529532473588860348209780391502138781557543468427340234953893542173234461105484866227458095056752335468152109183247399781152139005421184717537189178135655435605528663950555196497918664704894945146123539723734627504590468049389137915990152492890082597505269457071427325178273583528118722172767139982179035631850424312276320188933426790303091245801077719206776071120054672399434557365641144713536053969726863542147202645665745001875192658409892916627091469021024942273101402735405129527006081875036646048150723357282061089986296293998017395727498301116012587448496361706131215110949551769788321872983839595670056275563253436734159711912010820066358901449805999574232370081697388942348911393568467601244719286322842052117949210783275231509052599017029611279209578317725262316219275477852627714649849304614895469007360049885719134393395210267739924448338958615571587716271025901377983559169045681782956376216439711393478825966217900086555789010105279491084507320765893733749094050934531926151915089492076567650892305862808214606832239428630049061946034902734326866767038834391017697853439731104372874279345745823289111787965570323750900051478726406591041106618292135757234358604313422060567268494662130522865185426148267172184225821356868367006228848584037564706267667502266663407376794894755645235521682465657338612410466674585567792511838440851814111151859362534703025910753095178359945456770205920411924093713349829246513903466751048501317951748654716602501633947447557589680777122918873688417617511972334213485605537467226568410640076834387508116591204294128541143203341113483220920343406503574161289724095219896985629631740653082961329231228271017162665326071927589025461244637971147428039878590322422469369188223445366498095403393562510286243076822186273650449046408654153683331544995151247533622860975180064293138932816992277319037917555089810741092310958844496629686017429671157449920649008744243496014981811696779786441624267516351038836418209953243044994555269052395218717844392056967186589989357357209782417331116278067827521068308933432652825065000809326801427984864895590977474173264274331633926159313177879026393526075714927387466673880557177547757900902633768442267021825263120348281325281755136183585570665216769323277639150151504855275285880939216629168297257601979675269640347714529609321706340619312381194780834546367872888272201720288144514390171993236257502957489594014068683490906993986452041542190651215463853044782354501035471117996092793482216448132584715573466277577619417638066336724004472623328766941677135707568950569095473979873711535120548072888222164344443526484495488897216813012177428678693491299327459217618152293007235621211784407616202960193644346654516454768587789076273711097746734703905136994086126232157439060192339065197360767170371379376793836198197527201242050765119828425475984053776766602743326885960728992801040197377515252289402285269363103915241215320883944232485080772305792580556770685634994550585617750731941516782090504997654522298047012448763115529227464246175399384259951030561694406681688736542783663063050932301131799306942587214223589494957478489213775302861938789599611231434220997212994469908971233745404092092243866107441721088489853448182686925876484545023348424578507630703821606964645281486074408226012639302708137331776409224808978404680242024072677181065645464314665927315737552968136585645776156540743999821877317910500413716282463825415498425232948690042933988691111909201879191089960508357833400528117349723714886213575383666361388954564746754970273062809773746201238567607051687835731757241921787421603506815005813076199259110477167787405548225543521773937326472071164784456651488765033898569004316227229194507107912289614889619597219818635802295156947217175995460037092633034443020429485477914093936622597403630524465989008335601449477711223036873128989384917776694764269298140593678292098974163934502349687536044180730429448262970147482972600503355405669244204749057291171059717640480824526135085908432557210693000231300083796526972460295880889961330228921304964678037052592849118879533449319440343927787261068227869613572177999872517627745028626275464604941982263603376171088130777985703871374173944184159394108237589698031893053389902264956185749501644498588868470749401947742828618468725911211434683702394862722750651527655208355834964969654660933508326647077943691862930688476098472712742283428538916282397889062275162705049334886703130803045969969942238688380119736702308760358564085191000962414977150024747045385303662526781413902663130748882661264127406045987727019215980988842207114787508583843837876710749878423519437794810160447420960750349955324210793400860452488152284760460812094064306524309972225259109259048814793002313909139207864898907933874239618303198462973098071129701036541130301891483579897273839773636830803831464430675981169664571102112867784773217015860609515260630303903554490932023780320483148938353495968435087056712620092242900467670565053802087655318465463697649945310150143072909665856466385905940256813526412868831782844225569891962080944513534713117834168316539898156828431381000107629370890200756901090830704293600686072109814262548929037147298649941019430955616314986228627598528039896590570228280752683692380833462897124598168694505049254288094027704499480015222126226775312623717727887933190864877513576027548402616713127703058395673785920685449493323142111413640653693726397278759725937880742490423940254825118757580530530857814490883723940796287203873910363581966849819128728084195488199233173780334745443642279790247441622218366937896824885921686211674061270304725493503163130273295944248311684895676263202362766221707965042778735769981950914767975250764596765157154829667222543593450033636079810858668698353939932160235970859832873638162635226105354255759763739241318354242258896724788467844123567524092041965606882805237862914126329408635807381783154157854632540562782570907376570872523548788504865094283819025425969589682517065891322369541662659616881946306416677785588821184246961849142888168560224508368739598999106655624926305417757179846742080887315649894529528098406898379574028654320919758949364559854196386170194704488789462921333074489764118471780056105311332467536367014881434203037836478937283626294019580982811131178413897811318536273292573980333486249818979871843047640360831026071114723213002461051494909378191207198617447870015436217662172359087803196808096364039426015907632905055011962619355592749220798000898193792738932121395882734541713255665051145855240412330620650236657428280100383615795166515691641102729073063694944263393918209610943871270388942980280866166779554204546651198758682140917630559006322210484900764957710593664745619146028452753639701773736861548701956338857580207793118147638236619441322647858731396881780094319961938384945693102232721325101611010056008935438171200125029935920251111219783729617914423998869291076287701955771844998016102255797729722893908566065824302938559262769437317480093282372853651265840693264591107479186362052686979817764098393138368682132724214614264327442459734830561184467200088020534974204071284137012810967071170019261552051311694404783209774854649093436166739965191450873911493191231092339675345009123403877956675244390796709824647330443087002421359048805441012396853758968274301197361318396108308741248260070343779056473796163090094059415313714592322667964504762066933208346550386591700739162210677712733915342557991525641853418994607671352406868144437462165724725604907672742859165604358253527778255074244289716263546792601364226189844793790117256231710668760413028523877578379854772707784411305932240722568736832159644340573606071974102639219851671711175504285967410196796449600208706091822552431716558391835610710580134998088211195767715768247063245680029475376175224748076231590340296426345504861680300213325964199573343795972534705258776531758466962285887656696336942376657126810953628234601771719116854023412696130479147295198340613455269655794412882162661759136345743249797477954838541037301886152031216514991863108410447385885695311693183657895695044314744870612148869014162243240924108931194204912394757811506380795033616747182365462536437074226538181055809990610491308289706411912238100709339244782528257466199366843473069556570140008552292285443358660360500867274852902082356599830390611737021198316187392059050758775510497750485316342658255525626890601405909098728388392301735661346275758686634947982205352659917472220409168429004440772384457342897274275266895773308135565022565354793731858487991748529173900135203083944468200786723542473940553042635974556430311388439744824158882555139934970854645659022271325176266129596090852295712732540812462854607584346243834402128157349518605121929687569035817467296658793277505556836201361622850208975607171838144084846790025523268407944211014348482519777403988121668019732345946144969880439316164581955567072434422950383795048830260193475301960532130832586186171100722286981539237149209469561371009348117285753711899787575672265683866663571206607602538319949994923397105587486011441174607328350489213641368039521471910058969384917035289597607200501297164274030172397238738271765560493636530670135618220901461368154937184532807967764472624385331553704681563526473839074706948776097208390029137692346687804172342486980720041610975742744419807022130815215420027088908897911810486938706392069780122042871847192815454488930159934797572348792283708757114069730587580640412709460535444238864199591213791547353741821773459058552945521668210801038153373253833192361581690646416820208828307275206265713781860781560514886291885676912199327604898295729055172634845143801534607422753614307869350227411328270288791872403553348759324747475304303601075006088596354024377239312700647482271676135320697461560469276917371071837296149735892794713534677246779556744638543367671636583291798324046358263533437308482218969743528559453014587121508064842918044013176421472552626892994506184875779796601316419330414208492015484086288152614095131105398190881543577501639583737195975781330687266417388742663264078753417775541169581572684896606613132523549569434826476276051055755495492985998808111744508351370308316306569560220884123493291462959287674996784632670289623877714185303500558395898554549877483868643427534986608784470960133548609787824495580698551262339546507083453539078274133996751311947932470399717662339716524766941047934953353760508294497010884228244106288117233271371582545270468505716784706625808999960089132061730283615765452291659590181296095653210363554505772734271464140296861478940204096474029715624156392291706149294091073107034121719386229777339359794756117787036333897188428014891014028434000336475784852201098336667260424312227963201517961231027577872685376699409944221505245072178412968038904310862989140819454258913212641902856620601464020265160296013844305621313365391700564789741182283262277890274080351818454476474955942280906069233745411953292588081666332344751692525532163372618154014978916232861067035888098931360261724929151059325932128523347685061693549436591256674002944340220567143043303754485610813264162520267631867285392808294962396746598435276382083450651408205058157255514362847734141066702505503981775955838112198167840170713302644355816737294845048683250939273945287432894917541102169279919477911554513054845688516590254219848556687497802997352021226265821155946545743751818159825343489986016347347447107901427596263332686159060011920345883917722446873939309707558377487868528775765232814421704135446864371661678423691106043241880461373071027976675524294723238932300526015042467791634477460021796447888536366484513786941430935747908951418815989664718201343303094194204999298002112371061819777271707999823781668537478104583299535824782778389623557325070337143522070431571680142967159503665613720688928571225408267232325259632257824770926009211879358929147955538270905423521023867190630119518602448904713933919141476687722596566089982294400730251749038654758214411761935015724894164185463863917381587961447381917060196132772483463931094689511016441092077920165772456461342728854800358536108940984616762124604669844138454425327532624822960232689491578243715387395989325286625907489585164717016621673072462617925275179853447276417693835172254594910383840903005681387045886394268134735856454484379246305253465953653217592477425662628950768561366285900214372175228129284369660037852434889665278233937161931933138505718694020020093892051849204869473746088100489810978670460912835357243378461483953914334703048428523261355689216361319388508694818323362569958543957420373830028944780741044110556460026592475620649803923404513035613314336558548054817678356898201988267909280209777458804386230648959781435920218584123186140688207765769644708423363118623966615768547415186356685014352707767157413218311887399860379985217522696466377394723395823286183721726074316240130630805862770990936862720452211270575170862248206999862117913025935690763975757044907680365889456833979906125778283005614688400859468214299083930337475966445649230557167779855792695330945681624512848501992402368322167501907443352268178614724284085389731521094306008779162454355334707029539205997474221593468871354490241165863345933529977299473948507348494935646776829307911009749432169546338091085728031138025849896577657627239479402961512250094895117831352275179978511232421646691471650034243592864950417270850992706669212976246869484910136370458120185661271559570572353587428575508011759120985426560937391931110381395426160406896128393005214650976318177347087528352079032772639759594958089617519608782504748369046124499484272105600161518011906271565353562006664992006405654269520898993412166367266807329068557931732683820963732394564721024909952872670526461073593501120967855243262399594825454931682935631753783089812549985224434782164981152854695501850876651607011515119958204092296328462740224104381725398114944702258752308037566845749905958665051241911511584573955901431573307211023468788640227136811692759541081459884030939061167334804312310777988099229697910440911365160350980853654534601800237580843005774863390525735967480167595575537013100465498304876882829879268659130472508605864992326907997438012376029523615537999082702756931636784098340278603272058547575639468253340188433932890316342430743023209570909100110194758658673549607271847380190962098017590663562449540436551179804419952831249459059307644020886026163243265440644867405926732517054395342785522256844805748615743975976394919194689898278501738128118847057068841456950042014460322771206078809534576390971377193638917012234444526090099434553310841103885186407605510880918879472518755904218197047836374248600599789676543531560294312665582943566496151924320395559416436127577896573744395982118442426713770696830343817192063210660744110669952627045372352904993138125907801732189902933072927993009828968509337416130422316013901930723538266659229818598518994462960696717662648440377425174506690070685812170650570774917013336993603206623667000616950636443720907475982285592510222507348008802088103234926753957161750238991547009314031258234871536363434339364932773653944836786310637006002409257932628400615703931437717854281738147937132097668474477638736502379922546218399148157723563287035164860311504142860033068753207466716117229444718124860158867449713229210968552308562491230037641998698510485506184141990839382313896915443889252134561540981346768467851270351121085825184425237111933440422951014117971501169417214790444218838904122925922273799598436686238579329490353154294197383378099149886856792213240346286095234383145796429537768304251653028123589247969894254009635318588108534283857765224520610335916285552367908622398467290135101605343549155504559257808609433346439958809269296653148777519563933872987737241820286825645613479743406024170512211291178146291519251958044408039310957146899745088930029951270213307637959251026592354000433747592913119092987882269521694905125286141820939097857931396744410890125317766168633798802130283681105580404184977893728726608992594151360682926921764052671803360494604122689113005407669364912594783935909210801449648392426528690632118296101723324266060036904734238592079560023489429610735442897516553031821305440123374743070977457205207431131912895653956862158637397421486767359888129323123201918955581482816764442658639569990452470961361866581790972699314430190388457999782069553973232424456220677188074245332044542164161044344942292304943328701992400190251038847644703711320447706572624676906665844364701078244621777935537877762263089191027568805028526851221297118188380130331619958917448666448232349923079528705169416538124489531272226351980060039601220922106738774645694341055440852184686883120389322963859214436424924964425774415252413332786133766127537780149870714269226326537430695627278366401170311504481893418547355710893268167870037711708610889500588928087923906615827368560866906812006041496410652436160710061797542298627019602759377653782842770235578153430116495190914930192083050389159974433764944644599190160189414340657786163301679464695910339315329849393122564877284124057414597010806037841204305912467580725685842888270421945590509872335814757134176198353468361193237587957493146831919028860863152257594721586222717868806985531898880851406215992468533112705610015616082881800133367616750001313792177127980328065598393864139890481189173341416193294758293412037560523337678192173219219237781302520199196559071501653481353499665650158798507740504283007892119708918240999006806334613734100395889605819390783700855078192464911162346269452611540639976126534304431469425245992281112626851628057561455064057406763920573629279292364547675936832520650481599780851392375508395926891850519439304588292505244903000176432729125501920309619268815940254875176796466702918238766787900043327042005458490662589942872396301957229846191716403164910232984310654898335066361831855262563410712503111571582569602972012192369401641241549648337227996574952306225394798102176834868507990781164958062874224843657789967063660933965951343147977454772491288746110981068121760771629619124596889190847031168083643640642518984947925281132188329992530229063909545057363197574291592109435442093817204500355710603364082771996236078639131862247386681782286912785524869537120004543687257156375017083668773372318569772029333663474981173622817886758485962168892401858095789494366141762478199966600302840105282330148423275652887715464647925270277748366187471369989009043328102013413514012710279461506984654329211735071796838659154314573429649287305780526892504323735365848544722803204269598800326337197511643845742492912655542841751287364128225164836325126354982539414408247837476258294990735661721200640030857099533727184315719818030428759767728418645426856438415253253598933039948001513406638184521526652984291797675905319537904690272710643109821944135650736435307100036865026060472671680048040599462384673717938591261670989990007248665167521087005889244313509612396281228946956248456885621632833854555590597091360638751234307320075761215809216148005163157600225273425393160814277754343850825278827351494425487765268690245092392633240991491194094405222982347878752580216745532288690957094884316581711891628454375603712611257765674382338178028542738226051735655355195624687332671558996556147399999145826501965028939611832802879570182784011025796600239291260564645570390381616132637375760778000501487779233765852753674856822035583473636474373604608478116576614232938872898769573978066939518820344603221547349549603839294777034471111144558048160871772081135512839104465307170603615257352970717373684030048144104418284171206272993947214066535390232866380188256621005318873439990232080532998130627386239144434545116586634335500524898294595214402154217421936214375044616079748711668705371336019885463491845575511150789945836685311070353068807789215196056654506537909928012285871792524856205394237366401543858779400080062614547866634485694864368188989990011839757016875259954006472667353759494976033236363156825577439848250382408718655949177650906518629389269868591923566724597761670203201667382772287150679547027418086217368644225060084430946860655947019010798270964806773032523626591273694042226144911003456142613539324183708860309289928287836288167659344166411213038789045513256465213077591419334883428006120784868606663478964159866712144592031431701617414126905974078198276641643812650802082495103553928582780818654679917143276033694020445448236608184958201280045373013318745985577769983525777036543300769463278929549915642306223581500996673696903408636536282079272602001122480156838780892426172725864737414310361070692134157541175418966111417969699503640793717933290422130291057317719448047435467971776266250069464510275134556425240346052302107998972128247881997029270622699265054094086680652014916900792122579600963214448811040994003915549738924614552786584139636938799127846240933668681932686807120356382477603307358358498734415171576944581708223976522679811338837747050449477729833376273778583186748705778321634551254990647984137233143469165536613378064667053003943574688520437050649478483667501953939058266784197311890184320763694791535913953161038556811935007599909637091737568700112228505024908776020392786631516650094283441091056715508367582458951202124368153769053040730500946846446483752462093513213382429992779438020479444541618962908160976466221191071984184548659627479230277958942094438644491860404026851361145645609186227291110434624544608340139642579509357981248314274134379162377044484151450499166159730196068629076400421472555572402749790201840346866750241425160398290315220774407130763389296849447897075060067214925972900270686670172372374513600480981605709085919580394017815510788345471471181904264040410892305646996965221643140060743698868175213119713633269845697835175602791740141098211628375547114089628933233588408971329988806630922082816822196270619411090126527087365025500373448812198449453510130667043333237490282040334348186056089100019000969817482686557399174672849424754324952521052546055386704396636954683846914917295263249234573367358119250812672082102713211351663434022296299073319517092748386462718515663124155719411544162328168133071377394491888403823855592443675782789411215889987107469424014038580337938153011027642030908727010983422017059036806576478507651949933318632096270902838560052139995484012401768305364737994475718473033066639443794282248012243237734807562924186193624815285662127472839490330818137704178110637201067040063018704098536827544128209793357813431438763879740198242637496470759383301009642366397246489018137185260084003425540947305468963328430929893701300309195049952081137185087741786541328046223332495614901817520902250677012842416250895274422032460928747426891973705883911589083663811270399178245059382681422460699037257807975556427961728048337951781170257671410845071224767481169133716936777237523625147522676667863524847156921446098414526447080261983028732941256498848359322107518843106329366773195827508453898134074676566009070642119262589536531155090352906441518589284993904049501900937008856593772881074820512681358970841999887909350055391089222249735470255968596099765244503145290618882828345635536339459829281464732152387077122434774045254262630523741927787868126449731103751278210935950603695443659350050155783411180782444246586652577379702504297466118279145120383788280506379573266038594651061960604650970163244721602233517817319507411542965708962659656598356086963695559088462568673117941040947906009027445714202781607112680105644742247820454223483339806406730823197833553705429383386912925299270450295766079956235181664683428414918380802990107260500697091681489546637912433461356711687544479394256105332827845891672520159769823259556277438898815553768049188412501611896988222658970173801274742947487908078760327234020334436514949343611089833208834921792767037350635148997719003784295344720625523315171143213245022519835527640308289625985379086688457226992719095239417679348625614862935124375569211617702690906651289146496177907611134913565850049966834124051074005684493436402466657055497878340977281797482045089401634216475660243676855193806860354384285162512052798085516536058833675107706527571636824197492649808075832916062619989354191311012179555676118013222079796593715119341194679620326371979660675713057663897922225137285895841805068626031898122155044381515895142639523837476976681852095768460156960238560027151511810904393892485638955101751695295777221594299298341608325341937542258117741815166287297124334805621261209097037536545609510950317631057996785544179512490068643366044896058540665677801168178713456910901634378576952002345190107694796826091221522385929005775860949258699886955681771073908169477309099467444908193267058840080790991119806704046607015435953827552481487667051373254708438397116252298293372796568163640940630601972435378383173741022354552236033377434185495606889138645914617055360048948836879062508113169138560384960722355894586891998691056317409155274137761561864948695459554539431000285994920735036569881554984464167927329559633165615985784966325996506070665763087484847080477399953484126104806560588596861386314053211085386904361597439491225497917521000186487346048651955597088614911513494599823076439423119400366285623647087670420240131025319446583157333302883482802961137399476360516989254735255366290469443017084619069794253918493772974180623109522670713241689217061610278158299914151769380500932024095452674922431312353604376367188075627614400202016589890210714673110842395862193655609659553352346097445400716344515739436818393446651563234907822867267795614023736161749455843985207977077762349278772506673769975289733505280775373542133295293177686717251560612780671814374686508765198741146654170802927705800441814290169851514296100348522445647847690112929925106784553305407664387987471158189381909425938553453562733587194058343769596664681600524676834434060195984846431623128043164041729162118953339495709585752739426907757589922280821041590121812730180381980392676212912122043035103460880155038431423887463485529098673765185362396296282898675644092675016605917361167686723076514734750918934349670686251057040622333118537165828817002695817943739836000540826713601166133107972899918002682962034473470845330137226430604368153075305598991433327934207110323045794312514363940128822576764240249616490845041712865728493704072045296914465135173474382852927758833781227596053540276898403194344422555189765526135363646324033308965515183361916825421418550685761715761836484334014242782897993947950262078884646674577701323418207905610878766183558727130555844680016381607338059178876601569328436851592266217460537945503376782845187135379367093277043603334243118175203657123737093156935538146517056842867203042384411330195107909983697050284470303786868529097307977805194555423072709682296264876120084695976283107533489137433638777556149299831572519672292520559541323518925488001813002839674643368183189127425305388620226166100609286585434232531768252021903596585426490898043079228270891424641040114928491211581931713655991122770438980811922571497590227379985166252903912273573238899747407285337743237203838841233603881775049244793427789973667100643221497687279305163646910692797476750864402592934152376319784367866857526394312580270332462668209473808058635283398691883344288524375982318760555800727998349159873908703265452040464033616204062824796891088243883103112200046666670114331847786825935801454441599105051154517464516039880624233373204165179137064700005512104269102343384567576631705280161516322312825482964200076669300802653553962648615385934910368236893820046520877388398314271907867132060009127485225134792656948841197260856508573115062279870860812348519555068918328646618247280237961626936708191742002880005768783392300258025546285360894514150593717555457739244734298401749852807850672676545601559956311002838803053613456318739264591026263308166706114340282515524498498450464912328910956774000882143762091721326745102800098156724429211014810928598617796389567128906265727578110750875080290761659631847090156179062763895504767976911372910085089771792961190492776365501180647156026675536217098608251607550835607895336287911554538928777991259878600955534063387140806700537776561579059931330992784206006769338411345494051986482528552700343958442489355775713709912103078356970105009159245066539298261196495226031597865288474671491092171966246004870376536326544629490479209029593092778558658675949035937128870378088440470313297607570120660121364252894216581687722106209681253531348522491163001046774686550849473850563585143628403821686235545652231108322089213100052504902024465388793076015051974555758481327115793193884599776639557471208175838912234811619642647686748000376314013706998364423874049096864105144278727802643298085145504625899220484111324270620737493700828107389035608553324390962867052185497557705812481486754309776545157139354789607805705895947780201463554825681546712535429366758896133839123760247331300600002757765028883463132521841771730764481349827679465846380623781232447134671851717057785292473195311827341445543133452586074621897597558555305548060130114970969682897145345934643224122122747604050227293481613422754324615830879186232641768927778622268152156282052460559032056986721062075681767110628180731376550414517334985679144203554764938327054525309339409314978741085386988892229411881031418299235345920215170352468478690743306290645506220785696021298197979469239709253383206805314364611491816215385351168066327950909457371271691253868074737936082686961473652821908331729706637654181873684099260446265306200512005650233032181187400826890374450476915594100066622628173449623123615995581029590366030521524191651833369352960073524572285358225990528199846413590473147299519369884224016149383438991957599116996160227778964715922979345092774248818819865223488453502663326557969735152237981156591860160242075843208846305018495624696132028540943454747115453835649969841839635554691141059269717604989006963863779845812267869604446841465224017927086026273153431251605089091927140011324857040729980319952087791459187431852173706712689273252438777033244753312859656332196985919054219565555991468513013889630418978739253411253381348854360425129801547440604124908115891065863383265978330241649957410054533728125583550691468386650020202088415161025327955645167273877474448299896806638388992372392976642302940151833245162098588452776660158493390667317080647492628804982495806346058313144170593665094866253683191144041064157032216131874743288112016611872121047004771533223678455870333823884318913493817965097781654054547826461860947968093270636458358884995501433737512838540667317927617462331140301901543706139693754856073356048181842878279046017980683739239268630002835832773192090173294820458975890163102124973145329789617141501626967560613117160059352522193065657402024452900354514240229759104129912614171468562458370642286536921864495663222780478511456300450746652993402358117789816589185289022212234490823922781198786631404019239953225431669413588605569391518907575841770126702012752681765085314294873285383795663230624059994071046505091172023007445034058812748189991133504298442208757471929387652208861900694739724977191802525336472112874874090765839720163064123505338091970987620850779649577165870501632067770924731133117410255494774283513560548981823429448497723731570877620112475338481787328869193065271986260665103246480375879546583625138710681592871381034548322734503481895940556811134123012638706146837404081824319027226178198919500969631275127024266338255913699056939039658961246478451580954970594658973933250037545722532823629003383474929671096121459278164185870015378227846582372633403412589385236271631591437246077468894084736591384192092601855868828765551459738918122386583645363277329713219987140489431174851981979361474761450749095916542064859098357853307310440269633192920340642339223009834515346990242580162061608307234862775174797589853719470365472824849837406922294609399588697866549231131291382101085454070416146116974093260223035347508572476817482609040000645536633346507032625187895245176086680223937823862299477935644075054902173719257873331979074075794695671481224532726119307319570659290237466957135759337233486048102672174487349571114303140593508634836749836975724402393508816147446054160693297702559720024054921830716798421312867868100418607537979614199903590423485179656717583748363323091678757176815328556394905307850677398830357830440488975151271316258405488967116897055038592461327301715653550933388002954343037423171479211238859446165266865670394603106632675812257227896295015774907588893253307965010243643926757231847112027921303995616121982567182306378380973190563865098290959779382652856946744475886308734699842213265512851849834115717888661770987437637689330485172239205740716876978070899895393957557579521330139288244750210512933851627510412555032441950185637718062362772518914944428687977623742740535936354563024577899260180399747015842776522816832190351407550275506862680136681137629172124066775664632176181472315981273806552622970473508746627351496493150931372405546802749883582779259723003182075485413440375687377529123529338901510724057597521334672761858084809239653831157261496857420565289656579225360539144757933113783457427379058043918151190160459500477078033789587332599323953941260525239873492973501586663633933567991740258594088482470569329350036635597474221607717980731952193981451061408381172345293786227305815692125078967546631023159527705861061360497885847185872628220794156787947166405184919181372478900425673498769283582479597091970631414301450810759854854751959840286449103083420207060802838016336143540319124147146551886396181549960972976952307237846679431740633723795323719709834590706923771593986242329509243396169480294367586976499783447133759140133604037447890263264030254053788818129063276836568524680791324211701654427060417322339356266747683821011034789184433249309912170327709499128267825675241034950182350646983295071751080283457643495364145057836273766204564188242420275199297655166210873080925358210985804658167522195152849569025561095331810161961191691550094015833459549686621109187683270534279749962292280785135446557518246841832951741012061765000713301190755429519299750573366758251540972149371739471911347516684399113345586648319794675831909206750994815548021256629805073936044729524667046570007641360222483812651033412282996732690462770869168140580549925139062431152326731579611471072628499026861187721511472037039193375523237564976040986181405200783306907120553517834266688942541328791378246710222472184733081549022956760914941237452567860411559117928153202490621765223281209335509787711838673237440054175954532129214286665003660488473413812604957120164344064600762932118460352402001130344547273685590275212762085420199415255931495388084371497307624382206349566651829172481887534321600755950395531680617162031478146267238769694727085031664403116122403721466914879614210196437231904895237950453619123679341501419844682903949325708765659128961733070512500271073475858575230809635323054113874660289459956059946971241842866900596300593268060768727976126385479997674582500750531332165981450541952220808148655275506605189263971767118003295369007133984086240284058586053279999850290999065937898044587598722006490838996287661199449386953837524134104250314892858526480642760744608821401409120809313238419765489865817631041223171669909713904877099385940017109446044978016358620644357573901690813459603153470016715980777622780005165508529227008664337137594943302311373149133656366056784442208751392158125787639394355096391554631575308495558961019226137877319747601657629311537779170962034217460742829781169525909354304246137022835026780123375016192626435204888258974036889295358152124197255789671940998027584072844079334241120587773892235199399102252408128816789541050951373071655455009904437010468885610514367722895008105318851637168667019422293223892408781468621776525804069274435314141233584805758793231704083669625189372707017682458390975398282249146075321994038018985770828206809618441121881705383284160620506078469377402731736613481191517883367520263869777346428233982609064781584333003083188424718041107539139520355528078224841320782834915686034493869170183909487847568249555625487066466873395937038479594345097912255780730322881953833332948567118202854299714065347834456723421651094630912342463171056454845355120284359467068848257130058855341431921047985753984784485557589754629893691202038664755452577061336154032821992622405159405860841276659989608676642718086750316735610698682146170931150334370422326429507451152537008456030667958997170157929879337089260148048899690399699523970751994791876059381024880219133035294902688579966834988116209088947342397322737681920192158208097862563824737608103414147654421891478423335523212941282321827213073883914489901793748789940096176328898806165817666878961323042017490335330372501937466209335212073588798675484559985828579258473654726071156172166817874399320661849905861615813772996281848553648340043328326825745745019029922217722853204731717218241137220083596183992059015412763647231633166282097895487016331863658763096153538773787877864534385357604625936130584838796861431678998471548896928374457608959136785338417181760036490602377453303696384520335998926611262554565829228497467051836172711022391182151530683205464947572997352382917797581567464333194355676637722032428400129833524111015677159506996280159890267611552179282609950971700532260934249954635786188756020937034194549901821496559988611188337470710359158627637204886536277005040384661710790799270922069977997236053662064738928517571709692640395939191336627246444381840157630011562784169694163424449087951020944902971084612793745121219551405805054596841068756611505434295915922636570750511608313748974491148989802323542261011794899018347552735317059451965771666812237111832422861638684172614830235599380437859885336204595085523978457883319318497902981446797420569106576136511165696946365806617759235065463129339217503031846732561627564079014914258092621418583092666774598071838221166366401044523703504899981961998381544746074301580494427952657898373386332836530314375633356691470964726570200016909661366366007277401142326126585662652204827400914344081439948064434036147088212852468153730870449095960008024479790636161166349246661487056725125278819546659722213862161708361062254722286447298585989671297749647345382916533684826255405357940004500887113727934304467201668365507609869020996471349216845366009186786646503104328477632892125336443878078043691587760314512748386485139533226640071808446727899898329464849815732453023639637187168626186277853475993668285163620927934734858999319613650764537782427684147035732610987602474537017121594132482234833601358339273619303543543501719386138070767439645299563344001988623034993832078615788061724148020351888472217447080847110430884966123353941116746579957070257039858625721412977305195816063818907154253433342637761368806357258092626310058742951861057481718293085861180758593120939293768287692615919024157983795400661613439826114051868999123134581691109660411851205400006902962886448047925597938757509989720304370951561196015649323310767821649039359473040892487212334851319855266686096611541192085952575305416065654183696525591878222334093461856960349215320024864539202418984809825857850875800137147819502002656283543423340953555454774413964605397419339748486813887603301031219296860940123370083548666382743111520538374682908267071410862234278073578047416043557396381578754086941766140447182942224678668682976964014173214594102784792559175037630578135437708560946248078892449131239885488552379797162251172854238991069982827120452331013815170271419477574693936332032529634316757644522934432181894621520375176644453813356353479083441675474427618185706305102526148885219483310123966267705601440024136764999424298372369220586266459045746435568223218179202044002457098004202872792553333576839330701483363120488650003872460348724333455703049624120771737482157070329409618281152824966932148737294206100768111940575155096777863164575069250157587262784445241368614223729737451331130130129312116386991347420530610356515824873571453019236982955585893677404558352093647216754765906852880107084827350100983247568396431021297619342507438659345072749905061590548079993760773315299740221975707656212347463537858492864278280269417162675269775947978736749338000426363243158246510856411661428556455721530226443299202350684847791733620362085777427377620602246794480330918183775279912422389457078076917703678974337630913422894592188358976390848938702132147195693004030765630123880204395667083232868773426126784402527502851561139802317510592679064202719204341760721046926319842897048509329076384697114318984871083599896501119034910809529891134107419930623990704329913969840969625968305222063013853380886271167643876369815652812119099091881523432463576753298477038324242002340387638436715754005083590773632022675169188570323903013558336982850648104644986192150575330246442808949881603632038062449753285902630403775146966460231438521426786089556928744639407141015933979348340575628142010411668937216460480484527134856352269190480209770282419939317485877966185524128559488224681004457457785628153429489479797050856052818605615324654628711811861056528590174979182500985860276090741920404135749777983696946353885954352832178032050448165235377554605469419452610140282473017756149115980243330781348511330643020098040837011592866709128592881673588587897870235536304617458797289799353603935972225752774193506261165112837537722014077973925691695616373232341786804711188396141715362744003124693895553247957195098656150211497461813103647076281903584667978411929074231749570433584865767967057530811856212692069725673768448378420640029509829642641563271648732226132007243760534712197853699155849374913572108805822601496446910156326990436640408022794798582564588491598737453861735779937318070413780250277917219819255034106074391491658542508268600931505406621693880270842338374957492451435334232483873323539904234011970509875977576709547740166963151795237830829289548790546101805846986581057795435574019891056829854957890870181346894207397811561794539163360580629057003923835916464251786318930430569086674207517170034944252990245842886992557371418664891521164214295247078315844000000845465028122862916770485192080484937119055603562430169269246917487434285182991614751339226501201575925003008469145693511465058551909368244710210098756847087434963952473187014069027806804408965288455015212044266326970935506516584185309275691897521678556227320505629111666358866125602011321930543243953089888200698575858893312993771978343236899188234389849016531977053003006685156629549564937464301063844362018205254631212370285805553127717536784939168051991030874271846650098469996455976231483197721521352418243110009545364583534786800601131036624920652500566927908263184288845228327546388571854560645263625225451589473648108275253744329130993051648039524591991980861638860028547139635910327889290795781545469190344822482333491216079804443424787138806061384483835350801895984371557998777362068296545244216361740339048847841883389266621138684314933416907280233776516182622241321229317516983174051939603849581841156172737056111915495641429593580595190295785726704522182178775702962535476223047882761290080752392405314002065656543507005455373050446635289274165513827431183670903039625066994567605331894578457176821035668956198679536294673002988085725307268894661184258055091579105793633604462236929648373170639390563316579976731849028929053995645256858614704487528040290424432867598688238715497231207482272639993706999227565792301131873240592553955277898404631981406628076317401544533617694360666010330472664067393184338755685789724120783689460875388115025019638621794791393885589647347126438492565355326060459600072274610132264413423025649205896733047582055385060441136551439601104002392690754359474181528224746734908445463553607570331670713678987203789201208785460897034263456493818949502734890807077112477826936301009258232861895618554353270090552791342189140393264038480317754435692829561311436579703479852344911305507244023589357848738230873993705385003568597800801834681068743598083195406165080283046869339765950555735608526285405321973300392752162567629785261567743916666297497955243034148194641568085238987883864202484576964719284533138616128477362337658193804612195974691755488986661117062067793606658160916494157915553197333947427138254686185431210670238245816752737438373658631489494024567930741812713021332702357310164716990951800997288528756168378177019853476700856336310648032316154466190131490876196096086752685244192795689998503004547364637703975290469794106018186007897593537159603143488131541162937537001700351233733171441784004221234668470931175998733232101572397554168509592223805118108041850742244553721350868276952142503230545694616480554206414345942182101513020437027069389152757103778656448526158352026005436697708580003301771331124797742909774084470238563825806034843952333951767560159154421672786323856755456360109129170883022148465647058578885008078924679568103761970680587785908535076958942563118435533969103131603525040805886819598544435525749747518855309013994087750794723039956123823021175791535514320959489812865029011396717665188150481577093297779421266840568081100311838551550661396419192334703209405239804263977517125703147975007517081474216079104240283027524975916781758510967679529977278735696135418337469950493147987566790508120411744591520599367181690195896854323168421124292279855583996506085357195583021568097003896231115181103101516194796801919831640442786638655639154156298207593742289012089844864573942038654255542788132459400293252774122496393208132595189409357728534185502199915211887689892132530836310718069636228056146359742169461171434879674653079506893113384040207810519598133821226662713603079630217088578819209957067766352123364863278291428063914965973875146899326511822035354515644901367694144858175475519339301686023036536611972580883392447932508119271948425236474103526559748445286230114732352414934404864718991375288589807226972345074944924880809754716455268805080573342669485217775884451629658181791438743771617360510152143755877952611447664600691379325440476259889910905147189271659445059507076763307609462318992559576639210324479503840730431060157039140312925638375428407577907178473212300693823717001897777997136622882381631986882493143521341249873027356206741211199715112342080154445780957723432740336124810745166015736613096543178162003464170195197453707812365580106998758661750363828226941691417509329358420432575374931053001467418289986764724099589912688788527123943485676674094311956496089679888293468342342611046805336800392699720985432744493895911503736325958373113726256125830886709332783142578659877518844310794249260460775202775029160343651941890184389188999954300183618876537508918373432008057919248062860319466851107060028251099784447864201992066110577701030798610331693375030796125353335099180079611471986639570593541188810711275230491077764263919977119129409374729840681586800362956850484067858451591292058630336352920397532336652770820036210085487177121501886519184402014938160340429310428533632288018253483221222078081820632340461188794730207816641185694015107971965899955119160848755856354460115688848964974476812130927318950082470552630032622043648918661991452401450658019019505664837582932130870353206241929794772199985909123482364913260392288265541927799908201619518005866537154617244842659935644792807920215887516433084734888363940463655081911111460180232754515301150739635717441513074391756352691740620836123485424993435038248589290300113645405957649067173597597820436682135088400003115742768778486787926197550089715137939351819150368544133458650018653446418244747722249430848872740263646484636659263267602956254823367260504608053394518706005358077993867200921276447566149903311067253045525875980569363840587685410069082220113308716885956900877368709810398748619308527617087320694282987957220491744428854659803896159732520029465777525724686123195731787687671173706793123598008911486366901485964141056511599698417816295469162096879368093930437846068321089504159866104852506690369992597561332639918705986716490026405129216917464883060818005567666140387577151626667375290429098867763842174726282864367902151053197137055987946400128687012853682549365196252889563448627676852278881881778407273517195512640175148356304980494180999316724119759760839369053302019945562208675710949725294059033603526648324914567907369631443827269158440197565419729692504701390416983477569509822752953330428336466253117455564746843140599227761334733350767142304402376478603847622752031810929131774498612167781228737674893265398390717543485884520013437028880204010130125838081687690092923276594952229479995529147109569156374398241926702497988275598051766931249891101533836620103438612017091515508632381509939641534811721724236705909505039995611983647459356445810214265812815272726388829133074907706225160576611478162287107352653680881461602373402575107532919368587438996474898590822467679094933825626044115660497059445541222873527579372179791181831778229091081944607668413301326854829954577028163712365907936937262322592409748472594951683104439664692896248285389585425119595512388007410172890860434381523508876302581630865699456416380576689159956171566093317595327777006269997242704288077404511336222074311774675796422378314876368072523956021308692235070460625767219827148784915144943068700413108225225518370582439416923116851699652253958226063881677943748972845024371047410922665964959815338552415577840637168027628584807496065032645247512944724846861084895016366816744547518661538209262684249078052158624044092035295099387350414856431620049471283298991067368107262350481810466105100941495841453649432334223858574828298280209776620510624776694856001325815008822920689643946435921335434469217848947205416828006812882985479271914913714725430642220926444194129910076186216757838290690646004664672689541023586839579755282770673171278220326818889419175534099274456164918697376751564727899142381176922240356631331092826297899982588404798861721316626354240580893960271835036124662623458571720507449304669755477197442925126906791913320631993751198349329029561483053131031236849868479059703640669270113645992386970466673120655655697994336231662767021526482643405446661444445300486463710797801505639423353071819171218286756753682505532143674837564089535399870518171057707686899736174771229900247326467396245977191855861753089194061008547214505276464969834700607484593823661083545241154669576742000941897069335006256586375460440709090978183415941282971019748059066373549597339988198398442578002189091122255394828869039932114781883782684993723904963899152359515359972810332851085368437988470822239303641056171281322211572914034384079183661924493381959862077468247529149019629677811709682624472182080715108780958394645231102146219315600683238309603893958856343216045692339044096224436743089550117277200660977546877709502066778714259792574529662486403467474287056221674495472946185185354779765101023717122775844983272908219515354084146391952194278488185588086873222901665359926799945237417071534558500342833991973254702988514904773657363421723003570317428072862743889254525958909104933599298554319593141456522147198503144263627858651861702549204416185319606152126811445139789785206728834404427710486721474381587220821809468742786045880185162249242410113565188459338620565990076699324469967531728209286937597926826186307249360918987086546742071045665828851720297433385328937398436478266141008153249412339462715325132747902429829175757657497765672616085679820040995370995239980211404711012159349303587545341077481646929144378395974941593220665823512684681909064322002443444552356284116278118031429369149023836466970091529219517963733415044166592620372502582645635054572191333238717620742890761301537093234622854869246414567290366631014188673138831043391777807381116172723074588332327308596034235103164257578020014277306604477798715077476449226185967566564272068236925610855614941322514345943472048090986456572463523619957380688343237182247386837449438680452543409150917380015714375315300199879014615702791091705627427276028347124144980499938466232739561402338907303517758582373807006372246356317591086458942500465789711489416490214030946784533153925444294487378711395994831128740071653265899423245876775186431905427932813414436011959377699496147805904673389665735400882279293315877156647514093107066910179100365471270910191417357373488666310963578228471446673051779461825226289324194007058625113304087677032584916695809649053572932215534693535183363326911641400086250241825890364329592967147980899299067191573327359535288690351270582684006276709415845892700552149639889603533343701922693108834474301670590109678685961984573643971006190974775738726832556111822903630895421996191848272162289920202149085651532673156300581681721844271944155027186435163439857344102844120844404296403685051716749945033506132359980540694147652648798291571366045434182153885549571836099677003112890199893169400527494172341473940489970846824052646095799633744387106053448904377451998481900607922480154961710428662653759087855707684486841188651882484049295152781370271640338520472336033120972283576382801588748433060490555961107012528871391600216744311665131650074009429582474516145737156530861595123879471336943343687805510120849654952302956809705544814398216158793252877428715561267765625918194730479153980445683905114556261375499694998664872213715714102371526450572246788193181562597143676336518206593529109052496442113341003752166130907797644197874670845453191933591983144282233662655314492822029122168603399835167743571033261873631454588768585675672971305884158507585738828329333480787986017004506159609261513574354258477949616891240944749923129068774040199702683483621488921179970524207888239949162769297835375102883181677952054217999516856781181943796228485006684027457205493084954567501720168521710028602501798147852887785933446903868203998069275388527860188807555779125704177351872497463499774235302268512926614050642954364044462903059680588331391369253774804844182542103124028665826448762746038626743587837632947079530029081547461631238544471023782278780264362928875004104239212520945196602813971899243573083462740290883997999724272365294837413521443108135881124596621014026687966920950213910169754680480676114834970159369132694579839789894230703123979976434285523646008308477324296981744584181945771937937779297304077914503611054088036242758810156541914375031689786554049494808382772394896112226433174674460630383507307975826899037464132807934146393616183079278254382101852318251279118109329524856883709006038185689453723715504586175991291251177394157255875808856552897425487833714876016761907849025644595163919134422588623204861749865912557418949067809490146916933075585119466655432833759636563531830688125302353029986366911392320545609110776103464247899444568695170721345273924605335728580721921230430703774385959074771695834031405438987220654067947372452513266459222387722153881650660950004763184133447336057737631411289152828772309141681076087735830609393714652497117950346010123485058335935729094374963103022345018456594603082449062922661963295331214839491959580973834312639682721288638531977237597823510239959684658177505948421042784329812598750834376113066533616869651829061461567603216567747734253403998397457224094670211552213849645849796826596099362471475547187530661819311536253406712786399754423525822336622230246894355040568570491803379091404325502853810776216876465343198923162917971465017656945126972167677168430752406011051834394945966116714933757673311176591167239508769405640009910409370771338378161657843855573407703204010648831223346518783604878200636217949116115928549366429847003783366294975460227610605823325791095597572050044910678835692681850627186872244690494714166040252815488208772776021217220310416022721217912181128257938937860372558938935142044362710870393331071150389602740876624345444551665678669389341473720032600974484794549229870308648194342920846150639072126467673042533912747214774314696827574881823080130029862683619066459342964259824799937667213206092960910885039154021831421233037572155068175431113190682596615119712018174632330769494259216491786694425731348150786650989935826046017344027226641099118306653097400063558451363756416111705052822444842811435626120832247333048586437139530793511228086568096132040949684260689213852496059343788657372784717371265956169577727650717560871128479254406709824522494450046608216451363130371936504040186356412192524823602364298786258468140540835247798359696193852339023830533391934817578415876511518011188984594021576029765721952758305612391675049197578720813967666621375937113671240697739275003937211031436127754840041472454115872956400527699950809475105748220300811477935985715589679805110600960028195349010211826027721273798322296414095156827322025465098393046380916977603430046567295669760988357982024560729771218905396069571474581905804530365434944715010243908239308134443521096803165178016084461486321234901897283466538149501241926353421447211288338026895733085776023623033482938798889453698917993125857105497668816901548817243254473035141996179374476608601925491746538706929746176065310647269403940951209023368305421038946321431662181113538266342935713889313836593403407062376800420214947677326205137241575959006047407012871109468722757575755112999722708463707156340430139170902923274948360418367687275216216490841855220900139399355700593979103129577564497251775586636579214898285377285195826101830842155420409379404876216302622596783569589037254809389209404451002465880765085008691507082990207788487797668453517226890146375427676985255772872746357446554827665430677485767415588615801280031083560621520492863716860532946179011869280457363430411837878826432306309981007671392678509982071824193628378948219488707949862293244045949479972570519099968530064575714234456982625396145424910017866550310583280693874982591611459832330743020974734823045402717301005577554163771679457786986237876883355275500968733180919229879464793661082181028975602573127665600562087419296684769591358207024978314365606218396410736909401167402508545123761596780177257274047939405368322379873965580584828647819790172839143307354321285644885638588557357141082758617773488147976749822755964516664692512329748381430992260670461833956480817991964077091671794577464656371424440833580511381853619700730475453193107762910161400510574619179863280016975081318617167706769046540114061322705060183045054325247172311123527845273135315273288136572296210988569636390041712356656515144296904585363772718775124580142624097117755463842582328030121098675034731558441550103630895600656505907624190558907799542757622978064308779650776736721157187988006734506574489975393753542268188201514475744284178501281319570632776266933762732279620296782486008960187665545802042867225383245940428514913898005309802157634517340924564947249234579878634842519936345716662333276696170379070671025503544541093774975685141295312486453417642418680257449361850352525737536203180196354485570132998405244602375247619556990419304535842789673390134844252497877112245204564431189259298229472846821796005762563156481233645347866386233569910802933975179149526081762222201257436653975189328169749317768781539049469195961710854583666937209211212238985627043379181434487221041865548574046551874575165884641981708946826181509772119744055421743758608863811475291451287495514479248926947372100266685045626995338750168554505882512405487129885783856533095783363818547961033037570347913774575778380022251709434360979091329122143641013994813188790793076236362562617525403941040330717689732412349085275372034561524972336277738597385759080220001617900883004938422638336978862015874900892925288008242123964869606135593466976443330041431074961376498662990988057481540559549284877424366973256268173221504798763004806426750474556924370620695575926899357168624884936125007234486462729701167824579983673413729971249142842505797546197016064520262915177939996417068541250906262135299811555601034170702217024515301259154480657889219701986580063351656403547500587010200991024557883124074555109062480576411772965444612032206905104161528296161338225317422888716977612775099580601635655841176066457966971583715125707803308904336198516065100922304639703156518202129760167311851861490827232513132961613655297104448611150950919073600923321145920185383726720681459773149066133562593914418747161297513202766800561126960998170489094025419918134877897016315955472410191923572944663549359041330517415579651537033199237155772459174112393809542432238083980954699238099239378591262697236816245940762707856623081353521245889492508783182124248976940266121014364345234707708944546422455518641737723005861873653343491473580185262300573086075081816075358596865448981232168336717684367401241740951834819039733463653325151033748961758963809344164941265177995464833961430818921881319290054954681127752012567539144522363439694794038898558405642545696171258650378587851717712999696846895265435547017622067989619151264941359130800040662497283663944882468468173454724156116870690381497002231451378433679067903212829954229426643214686964528460044846739400885470884510405608586871646996887668411729858715186388595928734940742006112924681899293236397715435332597993969457056202539125335421335120399677437600578620986106201492520644298658165040613290425813041536050702381272839269457491202615811275735383755636125880131397611538801188562907962435800647652201895753761591397226164392936383172847820100174826252243843369380816487446288394578468427063660858383939256527327847918708259656008476595838109507929223899638844234926119712120718396441628565115586256422848321749413290185637393475521654761119715945691933035237017792244286762185249250935809828696340841945825001105104243062896041985672623209975316566768927386043616742587412518007400493796141738969433632978959292365141249095280623065329486200666386205773757390904753858881127912768359290593230247560031606114858343161295476945169658728716054247646887451910422948633684517599955003145693111446484898045375482777917283568659431291893666756556739887526337525598005858520235643419403072268612354553984049139925391360847993824563170694401299408816893594593098122532456404889702790188509921407057874208687455324292520459624671906743722320863568842581884379544247780981295290174717908620548880269327785145553320934649879371403768335565432078030593527965624494362580767409135385185075250598239218447694531128798891805733274059864217675018475755955315718670845785813929141388392276972707382280419011338597078577310754595924185687341768616527443126811943529377944661194161921288921416312575445210361069100028928672903479935561131742108279978725279593330077265084261741180819781349151952433728107866542292046501999218870084628882782497978645508793555884283725775368785346444599985370662039342914400487913386797635885434519405047074824351902087931720120653671671070421836241327424204902263346797076299502281361585446633352754833779903289206187796344154537430691117132790256938309408157231000879075320301836378859439125063159725248086758765763879569300250357751799936232404815333627323448581032556491544784140117912114290356468826506393348373461870455910921916893008291525083946124326017196007247471743698836148616719977668474348910372806433044000318701542140867543785179820064868575473754019641033362049799711091048779786937028608128612363649268655206999571225845997191136897113700889593381612901055857541391259890349749996315587192144209568938318935026391358451122776507505949643123519154048338043472134540440320819992583509471237158338404333874465716029070887425987728021336189427217379544189571673100761560208774746240164799598329236165944576007849547310555569541718712364670708122266941685103561482118920860272447439025853969310667662524446680148420026033912973453895150261840422514065226325892164100217227659561096934904112426340426901998377446861769445992175887198957235379981634380960792976151378802846319773812831184467124808558725128300528801207741349973304352920265239503510149343581937304894098265091756251947238382146738832406864566757543133059208909880064249926096493773018291015017667605083118738892042866681847501469737648351329034668069223327497726944517358111517250913026835794845950338114389872002309586052286131386058870514865633600984939938460337912724423048051077968015355553754013021194494706403602391967023253081516700851764510062486613899740554188150836071455405576674076186571443975048752192166294607734274239850783745625065892991937641289753474653646643112712711641333937622597974229107853330637210104543571586186915169871435832287760770619683124867371928181014486758459213106069684167087155444468237910414107006607597022638151536377508147949491872368094380776099312628445057029201500185660711527124635663728412587391005449141730870665582544263723940842553509572031764757395790101756398292284721549229306930582669935914616742428965803220354813673999676819108236964138088860045490680397462645785150459940513418679201231407402357323899173843847725307864808292746002645796516562679420809963859310242075533902247400535795033208323929852617715307920854716995425189925649273735864368206574983552561657663910008611425151216448151636541031733792896872058104279707942156298203343373478910237513696745426575571733023026574075630384274359830888134584066277994862957677006591773306655217234117236546120387886417656269533918139514467539440382788708658916051095332655956697370810455610787977679067673869855585199494845096036098936288076679850399065772943781755307205469864018155761198054167178616536642346865652581238840241021044095728814415426977570472389376062089166176988992075330094979932022317289051646650367511955902681500295659499125036849956517976629933378654841115177917509211950495660729116943188035025832120455112280721770442998794597083692227194411913592621186417512262937103367374985145040411657467171601001734657894485473859532399121298797530966505624915923191096631229934531764327297289835000229651092639683006104035818720301801597931832677250506004865255888192432803261671570519224310437879820669726388398424009262470401222634332790578968449344062266084460345752626910612951955249003379234049793016064304649362115194077639901530310606762979600685636865597873547018444067213665262439500818965998835884562544090271530050744259800592177960201554734906426011377486753353936627035328128119016966034029520988019952467870312810859087599875082248768480182062440535483165140820597756352216860660802402117781010218596395033857635549401971449899345870534176279141132669026812171399379221320528445639885133679480779307068330814066698460451921471386573814735705686542749293731125128494279375638353834231134967915724169543050746957616857893983344331834454191378280639075645266984175018479057648410125739497100156578127312975264061814640524806336336332430434689666685243442781996242278186595920240938731152235492524589602699369372251512237294036372886467387404866318152812905460204835067960293267421735295122096116718303581795629181999921468774402226815688838100853503909695766868973926946475904222702068596028549483894985154870563563507325285182725402835474425915951261282181514729644556455931391524606541933878302732035648565967855543881135617320299905270398337208468508538556905815242587496440290701236850669604749906952012933932131579840385441487581353336183524045014930055789007346946802136190220717683189775462794019966704346343408788649111722526509254687661236451466244878068777872117296789112106017468601513262054760950418562355065756435235213456902219857785644898506376445129774024107820393476002302392430106477844353312445331399187341830359623245672146034647437932912788292066430523914420392151906913493103430665237637394164103781492728264984423173878554979945755352781424718129736677742632141049074336703886584662539209950763923375070044366694830307510629216367094553377709046009186685324237638796229148742860704698536038900037625540502458131067529483952956935724726121789139268376635254316166289055306243099691138220223965856177630816524731090144392429948839632017243282762252723431578090802719483402250388237788518028372631746942866207156513003311921737416125632789862656791889366868308282486930833725739487808180868408301123005328042408155455915329839276812983613378300496020126711348909389639910955771429944045414767961775543807024289932288499048927372592724028332512733981696319704310198604878803434540167824715735887752195804577916983062801996659202517691795296651497853877579691655029253225124110277330681746550321965533287735203225291440834410002336999342753784799361858897387682446656028310989178685273420805025286488549514549536051577880348082566506872556991915293800587601394214129707820406911989054179541050152811188638236989672555491754644186903260020468760942194058062537315380096689933515415337198868542699384320613266620237221129543672464939214693901820035231850787307766793340904886447867563184865657956238641810025666730288206813331688539656608175969033807326456175641144731432239302540545639683658259418196192944390232669807781816766971271219422838228020373388081876034478682134706478644847778249377721279159422153700987635901349090045513954317878026482148673277861367337843557435616554600830300728765277427717121882033607002839868077280866074974940506506115008980250349927385158918292783917833119674305295583158170556067714266843085056685973131604382053933404736300376380026722861177169329545362298562134619700878778367218267082241163551272893868519985258710279846171096215342686445735908822423411252155241691833621255599559735002062609904606482193742039437870794463207606114966986764240225133464056497654682805533198486338347413292108463344276643565506683695876284828943202197244380236705551947498538196368795981502976640806966872769491219451911519838379775095271726803607711534533118953377229829305573314171288477694691282703334876767640261161722095660528835969237491439274928639058447730218001534685593566487220729798115694403224971495061587799152082843550382324759608208086910948610636417514449694441441406327556777199994220549652166061550607819598584925134590137627974504651478915464307940583299479666497615796846029825642286308908424774762120592395107734617390330129214550579951109570031508133921254377624507570950922941583114651884082307650420323586039372056149177293571740175555970111777488243521463297997294534220686519348577336494246381127117346615493689332360825396677934454823475159916358498831023715633779148227845876963853155831481861752539112701722704500347024159179827374187669600190845953765227383819661071256345161759949599219521844895733362284885176744427946575481730565115741889895651168510485506164775395216766665597389660819704157898201068682938175379561324915087030032921318665313959581356226774405854392979522562163344121322559648983028993340581740920110706834224933941135637090953556969533499914612348359208125528588719561365082273652331778760158972018540900160433801215410337212525122903495946821647056950429960574723048106354473861243563216321692428476906735402310854063535759932876824972292952902089546501998955245509589545756032722449949334589788279108887966571203626974649698036570251160868450556605924886318586416267381005132097632294857623457397036392622841145265112745179520899977594106604046414114372522104228960131844633576923005698512743396606657898384139664034543603658922486570407014806961059183167427715962585511475418548105394904357600899505429084445672815192545257874676914236837153133176383568979211468976581165926307675438038936100941856785421401041033125957884773763887555822283184403091103057793366562181934541725576177037637190301051439909242285672118696851960958478056771663202393519542564832875290323976655665097877299402653625285245855080621938536160813173915677520466477455247348930801842722910539576760687353406282329966627539439253696131385630343013736050222028473203357034901317640360667372965328667753611099811990984723702646428188606843303857903833722942214853674233235719109583382610014527740597492286163937359497618793451214077455219602968050522946124715393335706719306514666012488418665838792432258095690734920458114615502202635069344653474193173273284116543868937162265721778332702214670618884166359409127326171746798900999916552664623662683354655040418565624149873213606178769522210126016508027362079504249149137737072889530560911214065403665995241091207481583849541116613186004759458815255941504049890172917035992832272275976290734391833551765466997788748326414436097560538420808967688547521759556688432283960084872843754421801672158590156500820175451441722788223688224157477974041027869623250290254969815111620862821723330700120406727253254479519470811936950485826114158225447122592541663604050211034355824094997080985373022380432981145314060731196214236822687142397818895109287302454587089971394344679477802298704710337920751170338151475479952453838807998827543330983989068761724079105889463740768112927258594203579605600833532399589060166650562592933925094896628136269549993857200363998374305436514790084199708905500280002022339803362652632631082590333822804615665463493821650455269805326545356274309385989092641402231253482323459534879654131225676556838656660838918163236142210233014991351533622998015610294001573741266029246429121418351206007649904944814972895444467744039942205996423143027334184296378434283699696747918687462307538556138490734835189744392612186318630069498756300611970067078752819861769119600222905004622206898750413754048725766582203612925422708229326103089750490758242492670365851199398863229996091919934169729774892888890687916960255748262169956654661239503118393804575186900459264153823538907311024592750408379258278580724893066161541449802740484383487615236929491373426006890943840666245710633916533906575783833624209477303628056111891092183376219949993111713385920786577312248085903187053183044013415205852621288590241432040475436994745251320560298990808780170998969490376471413363544449749105778580684790020328862390458574382406745634390570753183616440516221234877622978660743264534738229004966954780307045305496114793300230829252372297087467964429016305272752855386218223405227959842909087955288008832727667157116370337848683453924467590784127981577709325262855360609935864904677322756877737015934199467852809405400606325718961836625343162311822261542363044360039527861106352691915603632460924657647530860358716655274007134265938627090020648744352964842427003529805220198992087984253792704150073656436332193228534167395644101134848719667553073963698452353008365967373129074369532114150479917405049111074815566610039621658107598814357666608634119051106557635520657375265146926381734222781951745305192662591766494160047804917607309691967145452557693792987206020076697104291400566119430098811377633681126715448858667843552397834397598159596995554944123368011482339059506915856356755117930877940472745307373223804700281794263485883841134909011112864881103378916859915356445376292965248658166853331980606628561470004113645961125500446230415492234917081204205959173568538439916049577806644315982253878720801378384500783199665477513640831838975321166813115754377579100091298812074698807029178775724436451821410405837098012351629673969320048691854136514824753962555226011158051773002361337886300831359194424062137930334445540092048042632842394717000274584498248976599826705363076665379404121457423684119259409936521857471587986151061885070869062371967128352724176943554558812100867858068822711047110833172692838444419321521791209857343362250962956966151556751949505361402283565820360666344374517450045866332259366279704092792211308435051011292624664537687365314453505128816799257805305833405793612793979235974611356468352039900433622219653845006668782194521186729682507650753911984057244624014465002140139028397093699888575899867599937328028025391082813787305631569572810332368546107683960780538390066690405860867258048431719589977496381681847812894126146413421773833403885195566535820184238931820978639506064791321795678674316882984226901997639454467022249328491935775841882039109714031238956031950553437249989758077127515798639658329581203611859580651474358343819950556654363561952724265454705288070213894017035051897618856476183350606835972931682327215034569375747823719196196253691730789501095462412556730489019751069705837802358920320194137716829038973880387711603522330173238595105266592693264190203328920417166162166932963330607995384728787770083118468146844216571231864092555576818346584899970934929319698514319573218722821790501842863641249064741947900684271656130358922988990865908057555544637271467449577592143830098877578342000828115507196886134498989770718186074398193368158443750949610215227223378870114378826251345646554816625601094007519016775073495762004342574605925109536981334364405351444881214700419550326967931813838283605692136131215782226621521185156368562636348666255263291637119228023688975373886891664359442860561882159777684008355270220346997373527062457703639408804390170295301058615903252949146243141310279253653393468433302849562887421608081192797497848685826253422235745004146337360362336176924039507681283841763890739326393262947295043875920500735717979378512738452769597726816698586875210733139232600125083616459709169695659806064737867916707067575127909173312996698161048791057232265569958885999248422041646365684006823949899571408188266050015123084675279965183359993010734868485086838397817982264611331892853715118387489920339637628588678378938028871804376483195347092716020678776505205190911663365361647810948586230270688722991461342859602713146869951769670624308433297948005635868447146847994357646482886855689459335184336564032715835108450129591479329329092617181379913688912413346336217543852131541351492878783067376757193158707134754371880719030696566169689439177824946502195794538507097379096547501418867958551384401311465539018041425371839249584692997073719584262909925721384623272339820445250752116507432917611206109662575485083019700297278154837399273183576709676491527966338511057440039123014200328901642745535644830118380449946997805770297631015322591481782023768600942745475991543109939521600527305103830619189990441575506877402241551736974070892021208518922880147556422773986574116216849254503303317397097227611661668304716007236648461270722853387287067080532657826882285237141936196405606356878303706148030646917988461845744205971980526122525023088652022378340391349254323325841752616053668390382333478779619415738626811613201691234477492319913093619369080525634165701673334758809231094336907339119349819264259332998352079729033050592597035727708334566503279985866465878722183859846201791184614900500436164956987802716365716906192902179200958424227975810035678647918909250475666625353893325952565807796603609299765125104043878921905860592300976498155009505430274616505350905388801189351847030349516681564012073564775805794524171371088099667520332244319675941978323383516176444936415639618874485124967023835019164398598142242542437011109618864636082628122228005097433352424769575287278577350766170848504002352782952182089470969647385821821795630246523388060891726978433345465642811090320953693613435513064504158396178716143303091060791537063860727498306445914826872854130815735813031777744503891875993230867440535363643572872875641568822368819793620214137844310697953555833219262575698851039291191362238669695496952001612038168859483103626047593771285899229238150372363179140578079487651305869612821590714932017749836626218802442538954437736351810364660309395213118878291517088546242561448330181564269356684059746452921858715076646077584319764565867789308849908844550286922529545323816636294800500906505536732482371940527148039765127741576664118333979062742752710964868368524035162371339710648437578423312817900986839494415390028269772909257047332998496800910788957719216514142696172067317608262951328581626885712828891254845135764082764564147596858838161478058819976755853010232254405234859584711661773103428259238179969418127825240859278587028150640658669104309896294482157530711489097747482017957847473600444791524054042212896830725276752072991285711578682745891859882009358560455335755693218180820680932634072280333968659663267189777413166324876958980863121919793817364456029625461268565165983344188755565416632331316406282402316146776465228639505675311070680355182317897499729674231720478173130595261178038760082508547400584692190989557563951747234892630439330187860861063110997901734210400985350274963555021646098109170309985886789473618923163458679510825965214825365810312802321220962473155684560987806617380960811632452478679990278980187876678412500860691002241815348795226569708000344962709358100778599705252930867451002936808436383510226551764566024576912453025048425795648994174466936521193645136894920376615985729319012035967557435141104090633865630459016878585739035923917441296101837318122493714128726704659754748980229765778338090187789883908150873082199424503059345465890241851635149837948673804271084828224501706376424552096176653446319414486860254882373561026587434673233934605114827487013309225210055889436598064196619058051991916959244730761594313054725012862864158502832320491260566053780500805774678686089455584125102624930728413958601001749443217886727736833885143160770355060886331388558606634499272922256096863834104979952464449668100284914490606446401051193646008087570154735732817165788945535884653173072107485522865037080763840643393390415415277975058170656050251344350134661089299416025965400214751745913245814892320017689399170479598905122855782285385641259476080977961263821842653107777371175372624487108830456313031500046136957127467818102087092451166987672935774495941436887542104116839489283380300032001432188443014769712927189573613943627203661184173072148172412316922608267615186480244086140309908344416374578263960378189456344931715214808842550028402269972071288040701888562882509229798057377122406111447748252185458975378681423870083808257334421474336371679023202473531177951878727658140814187585771098371208647701169543362143067659565939135316068667440326780324636098014508807245569603100553028021738373816031594514353786299920107597051205341445192440382673416616125715859078547132718658009036382385190497090932929875387772189632141797476667315908616298105728575900114667336900630417135107443316994669545262898641084726865832858408719754268311117142049209697087243839454851450527195475596987992100813291722033373200907477064682511066701313904279616939597096396522708726814284849512148439882658929520201802681027490599137492379111353084680320840842358454368480260564969657898419763885791009051166865647102229088544924137938895003269737067561919822865907409470309266573424858566951536411241562598193082508242544824803811375342289285797352045184905637614855457808234408765671910222339208095871394741270152297141051293552591983558431474060490273596801250289058603922451334445361184494426724008675401635780592551271046447356717137927414353037160529919753430535880220724617833638862787201253496261881055383017359690392709922441738858154516782535113232526382976863742209405132508902746062596722921459014989274064426135629471319742014948625184871459970065186183949258689751619952659111722697097665861845118412681575956940113538303218743207018329699592037264439815489890923968757560809313472828945048420181452874501388517291521727961689627942781073305965729340993501380219275626387107815737345813057342591795892779330438136032344402778288501725759602005605879468404729353209646895519417544552042586778174734878739440849347465116130321881049724179038578550412454914300218559452632560729803303681686137336236794110219465565795161902315006734642638962366854130716553476070794415022975495885054469911562162163619782512384799077048651408011528761545897202703701280348911338167782376797105877853199578213580357942817971551413022355723177824377787226922607656907787358689440026300193695198182762805367166506796183899775314697227779161234819523774593428966448678651820915873180979074080653688552823234675689054365581858118735218712925641843151332749050435572933291943229939593593357185049568930644785533370971887875616298351752723839575729943118272479804886818063288585078608202103293077814423463239789600732881384003180341913716981892313299765944940574257207943118012215315138895099768376414698114613524823188260514507168232488750066453043202889467393738776279161515583296048255248413027794850665456226343636456242055008982415738059956399549040427603710873175202225454847507335081982678428859052948306421359790526732484936773963295952121722037087190902439517113967238348194882418515136706742188494023614938120310075524350849994977340876671820842388271973148900751568449526356549657583908805729686216303776215893420852704686213170125270671254440097236902536581896464110158973740434586504496997455623757432086312598081144807256053572830402877484722520054271249787802932306376230258957716954929951773544712205337699127641498365820124540621994356011906359180856538311653069603992590382208504924106744989636514705399682633252403744986356766728310755443292506951833350940293008425814869754727995725260512688783319761625925662067976336688111012292100248616266057721185477109920838977453969827018021448456150171222082217101311975082662018457357044432290234814632545969160722681842909748743304536839662934425544948851805568275767545356395351768587652625720949815698143567969190713960575363680879470526614193699078657992497027285995606172247321070721242073333701915227772880828522386448500548505604324509637662080043439489669391602228081601122691340695176348800335268779455956547365565418364225960035417847283685517076889883539212119733729671799378269961234947715159035761638279397389512243247546823072184851287604673049215691612080775139529981844387143986068310433379533611880424096859923274041075214366051729012485123790459083507584017250625437863332756945840097220057593962956358171058127965438122003133606577799866779064625030788364347111211722602959102964315564528497481965827775746329525944592488562782424414248821136650879551975225785121914761788405002140394580054489636283204997032011169967818223551419654276556379315198360602296315305241021842516329270245208591910813706598248834103694660276068795282619620769542949835705085710292391992203566743753036163103786601191311651815304971633909609635611993012400579611426397536408208503624629375745763136924024717488873615324814779163040920243586777347263337181430313120886459993828721633303670727122550880579670648655355444896360527833157565921307739978781923572322340249575621527168613255617224345635946620645859050215226739899552455110485845995317060894106857455275610033713554529823325165955792323184849206848136500433841111447749990579363105952999414181950654550027477225171351147580499017032376486271966751373988687588028654177865564764110728747683923452121175237255576250709268969928353659801533182169145456310270801947917701427968531420493180748414339313707704887317734939711400947682739364804427322698191892113915112322356118518404275604502692639285110848594207053350328037367052890434647378156157537792716075538203741833131808047602396916419003473015713543727744951419936451327497575893871702917108440115447327277645078843515285519752809005626171139941227170244049924012875415947844926646358583759964990860826247956855352066740173404119891798212408788083160840796738420221259563719505014056169048185603606391756850368356470843049518539811686184385572596239133246997887290315275705688326724546047233852911464596536345981397422632982150927660427083522515930149590338194944506337933256058360026557164031458618472390114844797530231096278775718603257227387160281390909580325477906326205353767029765592671763865839357623881818468044675393007319635771481299632066396029563582143481268800637115789239083349399350222969346268416774849499094841733875218918211983676989574782456886190333202551313448339233702310981748639505672520645119750096595496463327336568957523478989988932571640889064047916380973635668913746598815800565893911248056911149395529938390071014802336253200277477135369220351171788778300413544529612264991130364166220586099830545684763987371637894080486642686388623266967723365444358134477703662374191455631748097657222360573227137178784258751448269948226970982724923012136775970890901931929415826423021399201558882889780167498863590557458453747567702429501843369187161477924569835251306787436517264529454032314151620263566698911761467919485102756389171805990073307019849635687386521219505121331612013813163532909462625232412397101415065773992795506430612294060310664780477704717117905787613018548155928186120950096700418488810823736857946311293382202721793321943047178956925593650886595895273236223921510015395475205975633011211785085439122228327188107987234346758395286300063655913282065231818781696609883994843257396954580242597984982643924828808511233430725936322240549512624980968066370840020799796216661941871712384170133029393673423580372401569232210571685643203088048182744104471441712970794873931408378093522109154236045366721573992196851113926248779797886608958981577434445514204148913469398401747411750604968858317625004497821886728704486500820146039929000392394686749026265288366058914285394775180398990839144912240515283864671041647257714233452383653297053807140886877815912328986179663622962673280082972475927604573801258892392862979590079226776593901004613837129929255054918035813927885894786889987808010306302628741143374757651128435064496674853333500663747607148228897620798004684370136352430391488820951865475372528246894756977508990053827840212615504378424747404340292848029307901574149807476900474688021114853029071620350959382480098586484776708505996808696406056500322653916467452390490981131605827609438402659127778883719340091899175967999491760558598871209699625970393992660435436692861255935179122774368736551704742059565536733103192384664936062485911361909348328426217219860219443282724539574217215167333332305728493785063332220390247825587855627485428109474674909464094553469165997581735487828732303957150867182950499199020424827640133055797119585179395403853918482686067509634234494009304028450406000130606384792726425942183970448358386536799293603825371575280336819744194087154730116945241872368916499701612893697638008698306224008256431744378215731057166976778033592851400010401492291576127356747408152479642289269813936900528690360858977634973047557538677741186018145032188899758561346599649973655355196761408989601160728722172746055288975420552384235907822077437099237121363507237982960636946177590680681335485625229497458251498014014505847591219403599215913136215497938929036429531892118531257300866807782305788431350358548702457504698649894179324422385592768951999489759706554350209994303390875952771997002069643138552115835085923837226701637095226404094193350909254299087140366751675816406074353346420713874026599481447450031620665266853077318413511131121722241046584363153563802223835546767881155829947558095515714880506617352827618823100035027982569002377861800509342513079914845847798202770245377141121886646554698473962918034301653317822401046904007830013232646669780407054967083643465144849364630434278377638160290244080932967975670993439483526038035587216725516889320625385228819018998254382302346841981859047051650087729454738103480457005668682482967785923091666358165243233018400150899516587107408378571711865095779076069151520354154158645085254883240089409963675873326368327554557092817265096447644332135565883789966186778666928209131916019361494807276399225930655742804489448560993230864558565623351433176956241720256732256036225897006257820057742718142937485336620197426802687143723528174240011116716681160762185910772534330358213601070085028839999176422073380950446697989850947453213246934927831808411047703401538308250452491347021983365939921237002476755357505296676270006430092480006858567969630387108857688590574601268323007028228691819923509730902913440806660731605576352553913248196573901576033709015361545598961646410816245167999828742675839775962662688289764304429204033396972271105569385555015813860084032081184774026084032514561193047131024655872105426961921348965571802293732853897440880500939406274143343875818041460436054832234132447217550436213056727171178740005472715720756359854722133593550250590009080615468997322476247900831442368880484004703586564456435491371408051077185304366143555271676642336838433288208013346132102609603103494656243088713901972550369950001831871632391956026309155060162158743249632909385012327680924926036462694955958358618492072027446409888283597825416034125147751741364562899148848457150520642051055420422926529455834818067258686946939669070211547058397964923013152840659047997951891211967590448084340752813131618570848358665472071325278699902419890815804017662077625925775673666092962407492811921108011565995613489153636297417906119196179641393311729257726979669533387239225893533364653927736986979390142494723968496460817808819748120614460998964042111520391797759717628227118942010771106899852835540558780912763234856076013226042117865188312390937959937579250511415554943498704578438672404179498958685022309344277976619940202845109065870835193546874674278978355530853427797864244783336579656253946950000558639636061395187979118278256530816032765032336961782009058294722338878975615956771521277970340744208946698356401242040519819044049455151852928769862879875743556677914462080680850201945458056056692534014583424574343705975847350678929717518895645774242423473357970295194403863167224889276715565704483264536147271437734621808170645283523986344809321489923331764744956507825610202618083637224368755692091693585639855080637364154777268676827215055897255249976451439760534726848862392439388808231474374625307682699761372761826574880549064715153916433688826665896800985947271753474820199383370129581493403593238361008674479205523091966080308101523179722504527421962147289454258302365293974636923987973144710494341609406407205194061835541414611904368909636456013774567621207774450055949277382500076024115524313242810003462903428983808509289993543772229882773116995271821281573181493905146998634152428349666737649122000723821283338105960727879122215216236900093405225545439980967310513166865839196145786160020996205618476425214675784220816667178935380246633466527674283465135215613978897250688648843740964843052824034766984885756580587958248835629563285630010993494113057647729716591123922249110502240828408634087380914471811825079532762834479144205647407132016618148521015067032959159876453195946741069706259007730425929406905493863690498026914096202421103246004687495234711183087432706865209788917976137964068201668157893211716750443671209645745846680416650335977193468744172913390551023195630333612783652979304602327583809036280585417941728340557285166137260676180076130670641446468552942225869764748323198895095478815045299663836702144308069799592954685123316510859155861320068774045347639339526977957588831913263894073042826078581349939508309617394121683275593637232084621081472450915174646894822182789070387577514051277916361090468550330454222813709711698406104727353288020419820778102545152503619532197436853161349758087698394952825545934705783497121415731351128479539555946443818314077265092020659607119288327021661096424556292585475581727303290413102170871193967878611222675886653022325080874841337546063310491185865553861876735683255290354405714611663015892786704838609938744305174711772916884181562216849587371204624818143868555618607155932788146720321736126136308494442007492696064964762921350017241321454094507795398841220021428640110406102481458359033520604045199126640779561955999268295394489104543682364698026976328364345410285484507517867412391171365223992562716384038818837846908687204578952563090505726410330201856545374718999333550235876229350103003832483148546198816599833107085228270096314696969711363025400135015346044662179614272230421184000558393399795933874842358899879172885023869350376572782359060496002869276515028079729529591182708769666820173011226482775081109529634450726354017780307367119209424244391716856225548414398236191537558118974815256982424211862500258282183280319052308425592489103695600940344609297708309008355935983607918502808181590372143694648141067152153052005885557942260729907764392350330300583823903759803352969633214236646416016605427595628053608720582157100131339573322540828427611194554941158290958000201634782392400373060447737559803807614989624538958804531312549741630898270330511230289660249572084846941298164423242051346606398988788876629035056993522861532531364806442626187582941831438226726322684064166762531882970820182058305072669271846911272389251765760463691782969795615273306078843655144725559258317250557833220261549194334491133283390177818684475555775576467473163071254622851510259786257331485768137024556447753434894062833275721931279461481219731671122247849761422865594882791786257963051881452860884923159343140251389748544943645081256414701916505802101093814859981362037877349494398826368174114386087397476904245741301192731360660499382707834038826358533625830429227944380094578710607745920741801678399838396283339599192841490378584631977153952228909275420400087115090967049437929512991616502582972271895689192866020764633103307952751361816238251940642712237499925606810086065456683583448840144201443011659845599691619688407779851224875396965826270476119175225083087668092638791646215850507403071221054835569541189344706550766284741277443776241049831808268919698371426841846981210692578631451282903584372210377276251168359403792003138269185245113042727357476991620144870940097581673819277788434139870752585802962662558179502711659254366164210938023427486390047748061796860738948299567467609242555921255200721524622488056074043581817591825405028809585672403940478789912614368489645195868392766622116725043443807484701876444752192797368878061170623215224595533188012376412123521293562089865846244038092447231442265267514347194112004489468208900077091290713387331100407320737415348287825933326692091152703090893130426298750738627014469612061483391832970158476297205795490119014663514844649525950596513103152757920655874304758245013546501473336507685554305117163620748155618136135396512168529079523073817035587573755521778593069508940252812765024168855321705166691260669172119062151273979060860308632660266659693851594751851072268811234545456327390044807924414397080878442492010050695951428899848438949057977296909229357682773882705633361460072640953387619562869410435114040696323116152053452579287376121392245213889605902677822957634772237208034049888909413693101459064806469142930330012904470419034943927335035847093634945456652196102098472495950396832749121602801203576018350497130126090651796418983194980169182000873809516937726383013243779252911708920380728145976164875311612591010303116367928205575837408279141602503415087022190325765973506021858725409557028795136054395835067751940595735250335552566505635633314210626568625512957866247214638089962026442706275850293864082935923064937788216341399730640169531975403823100561678445345956523091042737806952082048518513705157983672799757098551239896930014854937342371615566852737511284632785496243196431076132179512140688473250347474308435011463918292835687407127898993428859342370713421549879493812300223760667293392106951289464251231105988770066995458505886350803150240968357533717647665884612719655050541516386282486803656103788978872138679608501380641351289513148997535993704883793095773201000717984136181671400848159027359908111881828161666441368340164117423247941445519317963748315935779562244678677845470627949236699746146261526014219440626553492933042790660900314121862536777133333371786823790749145745416462621737118469814129146307695032996125105252347393514482680194038383397565985995379862279113017041079608515804006931040138614231299449892855994396499928699199619660395250155078682832592249555575956034076440870149501738791128928916509006284023800248394245697079392920148567286134199229004959149492977524568219309176725601463310696972817660350436883138758346716259900592211728440379910568139994114257913036929549172378212046510451916072427733873351134821168603681159568561197431507195635268783560761963777334560609428166677981665433408366625847574436655435756534831182240508058900964748169300736406137390677391665130817568637880088563387524417838548492655646556710271398009347666703572121997432237491033289022416883325661384819021192149972740777026656918908303435230473236032195592192768579542262548271462215018629361830268047140630283921272851318413586664615757224592281633040285023709511883535533109431699319031448974729640600328075210020258911333335802679587805643170323785602360909246090053114314220506585979794751097997020325976669721169015060139568055629153803323667949157260634932985401791621609136873849396565184935146050694609176366814899544239044943140139550791365207950970138836799790279371271153329929723186568697996887170086371789683229822545349262781117679004060960421644453608058783911129415863490875710996469090991342633784861269636307505690044974815948168741934866536861300601958083911181396573097411544929670107436213712936177037495956907872587566075421307436917400178110282661650853356115179929151770711194731406155245190407610892801746425701730978678565897353221308719509671854114791661499122480939603297347753794931564090623486597431335295711238955702514263915207150606982054365056105529597422307568749508822515518522607500193486018523795695068185434269096764013540707394096345727423617671087477943470368559306156157081570214351692595708477837356678548513860228258274928441799197659753944955119648628025122182774551315597669037146525105301850019393534970636076759754657795563116967613107101730321359831789672629675171503670244878672260342650604697135315904983335268284566641015141258975589134631284785882130464310645328007231808069961829947414209828669951655425255503370478341237507406318009116036733052878009552708924140578375030044960666194563353481732909848879759404334179103183731771074421943496202435512934430273531409416369786903358922799609364068667604152403511528004980914191150192617793945101815949172045406921738524622154568447399915865637181139992208553635336946959349721756873362173236515730574478719760225444552222766092876604706229685987741620226480772533896357270314757563433104963606156974818880229371723099067889298124496114587183494895656803380636945801082737286964010411723482186248719221614774911708839146757013526469771942694840555033589212585271902686444228534725910651121939307131664956786361521480877469818235102132547591296819336200942040377503316183537791538037720262113743920987286183489086518313744766280785528256064407888913567683738771623139518804005743474812749142051639717440112415825930240484826604889585726239786765733745121917970451437054738063456905634687067961422659953734162085441771287814892078304917567461721740827939846088741545417871592776909999792616500802313184466484836870185573275354805821769868752620448596688591989364250476776080951302312355945146608692005396404492001236173209192819648764941841689182656686247664604754077756684960785903864273276403598648093202498561285265587554245683873985863659930451057427964410950608663545194762331090073815288784193538637670498929878456300972526311202827186037299897606585706424744606029035755953266810588773548230730762748642116789610644967457331931760084553520728350035773053027018379958186249422131696349919675045922589668516652195206655657057447119830232908822492035158447129922420218763055045628176458115319708298907285581177159708825436198948277970032994460755290800304487443701911320745135762159354504520074523122978311584249377769266354292242014677200230688619091703971662908644665053876565646804737165786665937247466461288965654536602423943259483917481237027221262743260856741757683969192901794954197406051825176944788828935340595366550071730580941881472704030181544017742966724508621608900912444863844083494323189856537347453921164753133082882024389320030940012036837230168277216654687642797849179272664387137812655774595289529713381244514003142446118911352015842160120982368110520338320642425687422180972286558776601713066133008637912627886849965821758100229573611604822580007969280688117264398167599865942339424941448307494528606311812722407890147376092580152448774392018625689351914034543735266116198204895650792493593772628173850187033461727856830103189847230798172870428303221556857253683036030990709036449598063684746692989569746273637309504196872311948719441142259619781177070431477672671804749152802753056845519965010055065293634548614221840521406356320203950203787348291125891982532030436723254053555873201233925620551856459904506900166915822238088898997466446222760356595711473191891277783841582308878867610158543153140160078914373567042328826265791898983830976876501204972384742378012197821247747535864210993563857117638238700472337831444062553663778226073725942352924656957438939360116003874799562895631116352323882369220960511628119889207263281027875704348417748192616909000198757146608415828757265100156269536309874566216001122846747963609626526663606252813986423630281165364841831848714382810492620880204915110239340185418030989291095315974338773886838257327419806381147864658343060872661089912102046001264597891052702236792865920689705266113815038065177802493148393715525791583049232145460029797199453582238880951043762861473761893571865223962728445729342416386851151731355978361294340672969565978204495301340752463931481576107144533971083392223975595783556497218005412894460914969368438728867977665047895975917797950545411593106795798130456697865803995459906895873355951295938075105589878519356729768567717094141827876677185495774695031972074430904282457930169663826261528352464095476935578572026587728338742407078446709597886069395073702667057123048014194095942154717149784376638887651991618496589530774583674055955890286953279027729818697411211453671527881099993015344520613434357363396554250823092136732764373886638253343676133239444343501312906883109876748769522777145462787841302148483289619753646647293987954245301526019970061238892311593106916989945495650683204562578240361439869334795509873593711287808845777782541166732521140046178111894576234790083913427639579969488645858797832021547421646548548647895708583558781936984286217591133136580299441039281631534247175540177163953526689177530287478169141835663391950821327957892979378510440543975737902090404761528921524668984902046340673866310264746590498531946208732945434015404053338542019166053805440083088978320200903431900232756461249807087630014681383454852781377725349851549231927610639024827338360178701841647189647961187646274829808671905360355576725064132260067035464362176741317154568183377390467042013205394464810999203256866401335263643924264661155519224959039484254797717844320493793181996243308248353747536002420253421462898892536258531992023831379549785245123274769043112765665443085825787079951585808353179947651518516445458557696652957806000751349622151387175287849219002947237227632748148787573418492559291140627330979353158302948460106885827241009994192386517054041981841263009946297936748018902619233140219385607493951617509577725220606223980527196774881489096252750482855614397894836960429957471953734606464236641698612810648891448275266847195246995923395653563415689334630004647708314325064108071694317564713262552547882147725102283042341775797676087813855594941245692922384728996073267199528078886571504742659076493314952228948519537752146692590619680677437755729464628404076727652873140006885266294330577861608847098154142884482303718295201937768006226203400844751648800734147214208572750245120638361829656445996476020285704820758999037518146508186614516379173005882260325482665878924701800038427939118545361831622477751937484403010439047202310563972889942437110099159618164863797352609528413789299263553680385772606413298062123611446781285201439313615394756656584014077859823784226950206319494814625877516482999463879627415259184554415738504350127386510391151752469009517509615443173767158625787821757936431998304673476174934247417037191670111488992023985093508576211042236657146045098161223034460511126497256923365731589738413234786915822602616001787803394303273658709064655709369289946014773805172417937422963900741902318328810619974663303421930608921822977377656263253132391497557515058765371785708353008873246223381685093261445018977517800333964580240010323610407262692112325233160232315208923328927576642442466788475440005328329546132938994575098075573600830552579146280652850904459036519811955185095441553956488276201178655953488321647381912082498721625312875637044534164263329238890031427223925315731343655151009809931206549737955986342451861623033578536174399443076268545273679273042508004729033002925260933046456478736121304274814941089191482927863011275620435457092437040676728499225783848603893216126317089486141427668866110101226530637502619828213331129810535266238098198460980328792434826866914072662328975878356794416775588643912290335294480139820670429533143293302873728242109672382475534535656573674762829915260320091690969591780110085023810134299692942614704540869476760773502596935493743973220304283265365147875428183970359721233740141732973126927685313458533836258060108324494122711736340520219801294894310723589501549503439536698684418254041663484301824477356195538759334632591350627685507700506062146343393119104361683001576617121474209406345736861008727050282281590695763403626916164057782028242291875865354817833668426802332398918745889167704635230201734143240580791796228355800280513353869467385577800553651063660381958913384790844749125434337657348403396285437539833013513981164111204275805554684432490409975803478581546940726716458287679178668853518603707981816520498751734078304345334843376973910272867085039698025503609954189655446634734681210443305972202850746737757147610821429749924078680454877368967617856074118043468090958084543795842943662777751731820953339968171204594843254284419090065788182752154668596396135911588537719804605019291669004572450027141323058146934044068079382493117970686877647148565737424849899106537446441665045067266953749572061641039236619145298220556262700063718485723644422050443112114000497990845005485905773589818053482472257921997292218232459476800483275545355844569725853429289875139680682475346175549708368661034255885309784198024016935140581249137188687580733627497076939746909687546049881831284453140205901649366398023838020965045632060195074688731007714945255344272960632403243373858690208123992711689614537595847444201644387831232684854689912771183656236535694047055167197297356580131922712955848258099025463480762569124080342898450235800019151301916945241411893544778758589279109999486803003787283420702629813583725309887665777881070749610384667959925783042263009732177539583268218170079988414954019441797872843520714918756591110627959242785966089976684535002882225096118464593755880856249463423889791947840206638820778425185514183264243048046722609706869845884307872632457888183411090188126707868519762001681121207007230218000383057076988178748643735815355036497793092588384413520334541663423271161159731978319725408846478949660958664015745971440748656242491992522050502750935448141499554105358556165204729419606853773612365333053048012191776058306461958003978160104406621464570347403828113480520452686317483965677355249636575225704339543311221125036273292929217255606495766360146758288908460270739922008547653214909635652517622640347626478147449570109947090104527389398733418894407046634956372342483352299461030568292996356378551757787010138633501054552854794651064545688512676346879340989241425881333320237032623965780975493167393451790167960231832941989460141719420836687788556979346294695175289347974955079992240223276551705575397639280611900260545485024311044579755170336980465532198848328088353933260337473833206886374596547597704016186381743173592427348069889691107575873602569288936899764166472953628880109580059171203429340633130041804741927432658402715032039340434354910125499036572887514027669850431799004941905538301965946932784454210993106271370931813805200886210747432192387120205059605554785084230053865720716962167699825312423153961193204632935969980006563537496006314934704723943589229216868584647201742781490951380922074465028971424084447205401902234818725149550109468471956061022585155178980896725927022347819804906332344027018683877032995903461700693237366343100351909002173549879585130905998990125269234443687956270980023427530044485482686254453120378337815826024211010621654965902778459506940769815443887375545656620232913967213109124862274811604844469782782192934178584031411607293277544950536392449458651205922502556845394093812794222139068558992114435425236076545544559765607708165725536451695271127092411305483726005755586200865343693024406602505839473481730767240119305681303262335365054819085537783698698621764787557508684855646814702153885086263202985494981927102749426256510976084332270173230330553154921843203083931494782723670722517897952178842247673813369508193606752222105642336903449189629935549296102456230440416449599509325703242607502744521122201282841960494767549639776356063148059553165072878293396846621196552386171486439785609127454734236486259286751281098552265050071489677785042491200197758721109089685232945299486630172276609589148507051198573860547603519799917645367654684779323419761649966523065080466902211015570828394028179936931051748501815236864520744399336846546473110314206446337301378830861558578862390409742493944743937737940037987903418151525858120962156226901777589137311228138295204351778470339153557717154876887333134579790729061984028924195860293325049134618426125749475827086797099803826094616653310081298687155093036581140673284827375927311611538414998570151889523167263002380195129580287684421678124717834276344337269815001333184291714384494815028126887659224636327433721294911636758362985337163063745075181569874554444958397677460618120989475130985035685755111489423926316370712796037657631993344943513210528513951624241289485537112167252870953998902540724267716401010155624524463271877197824656900034949389881305389313982996122075550223507166522387533082888388585095971381873548557969000096505844989856909881317968228832700850287755933614170850851979339388872931261300076765135269964523508064381337172816857112326868459618495444442665216865395871485176834730501577467801527225283113669426307482418891085071102142889316914166542438402528967295229440505908428128772642929752747267703863030665290531864463225464407578701748075695709691618154019168279512472617769156402524750815302386000372779144228540419484149854005906572614818830678328322589594293442933526530242135077889091371602735230805303968589650417389331879557930621886166686486208755276912981608774151034212829527812981559586199454351072700940865357908375152623098123755061024437797746523538688319681347203268347602307682463979076374830144741576823656584672136930641022847042206135930974931475147266259714995184061640023792844558916392154495067679992660924010413815368505657106720780102066538463122151277304670768237300990936474221309286789987271212902748096552647126794981799653300911982117188518503686839770744912262940754249416499767274481258977408821721705074398390185992822519820850393356462201913637623458471369686540851759303010777987061635191841549730058081080097411508257431590602818882606456918278399055029150040813094670271412431440334783035935217887907994836959824942980447270347647348723053738373030208376832474697513773391180831856265882781550763292599339904874854005856583402074153770546506314628615628991010813196495271958582698166203290007788339314741674909286094743587696520112014376179854539606946395122168666307369050389628612975777116023462220032588710897552466653558900364737528043218380324017793545276999110720068604581670373484730204605830405762811287352928805905414812083688241169888478163993337751971117923245879424781093283842795500477489216056408455151353630614573169071663378496187003262484601090769773094185143995726234340027757346662685432917985324899570300190826230246607755712190610732657092107432464232980507043479863302163263520726439789241962837327497924862310024529236474443321428566638861096607469344537877582720373042728005344108380922344628887857555787548691683295782646098084385986815348985333597416802693279521530715865579893708198644229960319427961530640588717814647314441855154421061287101115205997476329504361158689199410436011509668385062803942477914444124835408958129786124515944242390288144584304367265347121325106296916288118465747771043771408102836017868689945869717400007359791611105165079785528578577726320695770266152931158464545802168891295858345689788309528496157034249398166336943281873641734062316102450365198167687627449175624552554421502726499963930981165536384447072949805396211496631335457234354015135359032869636549232849680500486974938647552390833044110871653219971479722530637151811431363542063285913912084937832343064158810523649024415175712837008181220994927596547132556726460594141810752639646299053726257318189861812770397039210828840180718306253844047642364936328819327258950628978643257607669840513538110237033436701220679177520625916644296042461534860781058243547395508605915592108250473710568934325775661240183109509619483789774671647111715827615668431211683557500387992882562238550500336495717178780381448962685079349845978236134223676947759676980390506805178804231536307811409805047008303533805081108830417603723003133634285172128705530196459805476171685299475654603281007215026278153343366959152578597470262374463692213668017285625946618588920273658035786416142721677585869441244030852341130897994951799276915508584986218842697882957813326615600248201034513760102879036112165584990736995356083690740415048471480492065719512694773515053510175373652944056094811994822890911038223513482404359124889850898243285359843342489380445355888497626991307634683829123802536256724176923932758676669108926280830937369336647873358860672273308444097274104991305814245050312258523209335769493070578765497248108808346047891249801366405495603859605831496458446491943423829918404548897926413158721256128339073492233092509179264622640336056420569466824073653339874041335543459619023631434520235687555235171129383375586136998122957665091551322166850251182308061203608217650089794553458391569026646704205768331128371434087666290111769835370984277915642037837179828026543506541078099502133588482896331734632528857056993533773641405754275054575235063690966533461191527067568084777513751336878983199525573691699228289924937217327911796287656112821273032815649670494656557918337403381556298819135063362954845150243494455332399346266056386264232242240613212202985142812479550491752726797842825101562461137291598250942339664271766599112183155954257744698969707472136251932105216510297906460223966762164337373173433823031139518769348233255352620672394347544906363816691838509946903931259336821523938739948427460254498338104074123278830050262894264518268667984805162086184656039052971976177532856159871683785503964084252629370936471507043259069023075618123159920610592744237062627210865895830814520697041248232363623005908380233783964992214084292968904500102724699059896387051214785878497035119151818485040928111992058557342244046173643417843617118010174941805295318353416217243080104038204256118972380975775126332797537425696940138519165363686350913206248755190412400730809107732481373951991505470836124744064401090681092264488800732009418317473766613332881561094113035756159392962366467105292304439491058751794172304300875104346327594856607101233444414047522313724362486044654195312154081398406173277690894349456240891028732544723598642158454552688028611868731227574065169328447241906654235179393632856184484163032098378275949678557087738039659333463654380728377021227802718016686860381767949077990480758440239073521634322238331006804137490387732693145570218930339658512473276700121912665443419835873110467294511002561392928472556598856115822493833823803940412977771582576980724263356215030814995870741942902586768975890436333295245552566617289493294327013613880624524555307479352823739042372313253105578696440407077496755106763711773806664348839293798935849313434096434563431316008902189261265736933049446581493072211639204573870808426558751297837505305669417022025892444765318339122469705035180099753898190802718445738362158258993709090756622152270727794630251850860621091491111283972067856273455625476242280141351685662129897024654956103479108324802666111302498146121880224986677437368285365248187789828718570365871458379582971787178724715296946426838562273475426874102262866754202004539913978197127525703156796209237667611886301933121361850776421601597517760530109213657533276624676319016394600892494084861456345399647612476549674941718416966093406283374317619901192857884386679404241071042242939022271466311780462706910188578199006310079410922133132040764366237160004208475791903556419039900373272406008910399779266556656732755852595599833718430505492562718232338478159429617912817934426296520098327407379848267352337253655348343871250677539099694458575599746398128355419339141290277857081994362372179333987405576961702821072833118538040079683839938924748127691073338185726596531593698780551289129384439889435516291876890077220443452488714572928464187957921885910796528802157884033577402246715417701224285530237380558671353026559216757300944338118923218987945592381914137532827814132536230279534313233030645838679743980588238098842124077964786971184380444606182587678724872129276290158925876280006823242450895618375069318668655684423119689054113029192445936246900274671586727862209616726640961947990767520755967470770958035992791971806695310000938597331389908315923060753822446110623422026676883213614128415491850041222997472092935948239275596373291204196162426927614183336422537816688274933739920474163409843242703964640831844941690295475111063395083314073637687580741446255646271251538428002546141114237457591919645324672843970581919789681827151857314691999519923793410980165130592434816602400329083500321822735756355029115652714720216172157844285292798446482893068764432537018265251903589537007367427386423109302527721150888490143140870132305968279922473915213610490055702711440767570820236303917552420166178258982172055163873800141312848199057390480884738812799346606831731402888870664767993828899530934916769560190603658004186199330700383980013958167442374470186068367972972803732092951370433614766553607116146803442039115150980143877842859534567133319065337946318157932021635417977554947645709059527355432510126279273921743213526568342991324030365752551490953456333762735521254620045012828464101172040707220507975827994036922235665997312685244245265147640803437432189550896240645001728906211965838096955165359894465802074756747450639709986533927448082797417490749998252876335468339878964345231578499763905387403864180255009236495653560702399369439452173801643984231924734599243461913476871288819720487827901661488555685753918985139743889934228599808774451145864280507990307436205650807319266106794157981061408790191511809469196973809600051004536580009478463940377026098374641129230401764558242337998473813898598885094375009538293939780717897518698182950794343464066962283694665014522011808020775464434332532546150669913416350093741681867820658669037632770276384689933010611644117524880859406364231944442357711233480433027747684766714094669852981026529942449171686998240217289604648958114478088551681318257036580966701628298437956084574674041930606970309243874732256519452997357112294603880869705784993166496217084650798156436811515054746994806240068631614523632337636091094840480363288738267052780831306984891188043774828815426285797402842536655410340555003456452576931864446265712361443207020848914742764647854641057253785307974988995606313418958899774499909708608561917642788404881469546680089582522302964486064596230125312925040198648194923426153999654373190514267796692779214866889329049884433126448208121619808813687183974653967238212089523552963855391720683259597429631629925915910808132694577397122497590305896333991677771672598619326214596820871482808441769176373455449601977488552318869049448574210229967749721942714539956652245454312057891279208131052423447863545311711178579893118336555729491572377562567135889721348785239370711633867454121942206439124264647709006019457376117206475148239912462164499462323696206202180168977354845030010984947539228900328361986259012413166184683323002097239071725116465986545131424047923374714512894068856435575593692756834600345386969445064649026397952746144079466529639382629240832681698348135440081679077955660505973786350395544511615524775648756324000787940569228964541602940206438594783114116585449721468825183169777458240149319052852345517753421939132853253441923703442222149197319498987228678934429934294883507172941107679850352108058326700361426466308728445011347390542994110596994612479904487077458862069724116021129071536444715180185475850447627751522637997135321785696409303872249773663394764983711051967437637465723548166974260783364602825220923413835101231709692276871750744357541432621607447341276849703439271548331722765109837917907014380294718147761478936405595721671129905794258382563598683406960706446483331585990460193844686900818775353669155617673295195090961522052678988084557731391321342829765285309796005934419844378804902728543039492495397240919380597383940946624062964145562741732413651522032709165486183231732497957275834595161188411068470794110269194055917199200135313884310443197443618787095676129377992517013203010932704643895944225823184768332948464993233210484511978111414041631598425117953216465809717282080360413417705154824021051387832622293568100375639314675121234556749110082529478659870754438064822906041802423484879924087762860831786226891799826332453577456714090673311135157582403351376697599220505394839480463650400378591957718818316521676303180793842440739497371428739349232390791875235953750986840834276366046244979438107539951101630839267690659206087109172737289013117932869787096037130831472324940345448112666764036412907474328409736482712731548812478166700463987874237824616022225194865144752912236754397962355283896787591895759641751890023588679511335771576888927461715471942645397400972807283883470327573282183126127427690041698676477316755962519723774521463657872804224892168613243106319143406752854931364890689430142179978202377641080801883200352774920984173404465114507651367801358268865752439454322556216125824461832911029966041878420943862981264564471420641362087928325021842817837879186187961635547814193053895664661468012902724047617413502580868067424955496433293162042808258758274565450314757850435438933463397900192581900594978652201755492303657986401662211865417248783276600733102530012830637897044457757349606875436340298755470130317426909885213064704632717469025211022287590867876512234530380617012510152190227302874620217959559807892672700734011302940310104077294990580586075626821357645653824201560230274198271910931337139401083515534645514472183945293874631476850936210986901327271854318773719239594123894269627525085933250720598638449256491980456454928783333923413697318869759488738606507605777091808728440009973766532035949730501472439413543277042057851135756578534719905361602898646145688108290290950695189331659149343629213046910697229158711264326556714970694546708619140208174407553264598591014187949254904801336760832518369216648275568992768353325176437968988361259638463821206400927025675271378172932524439031786468393620671461563893937242801630743105793881857952596580854356936366275488647571499611319004068111104379238072695971951985916021253467128734484211274314334147224557662777108449636124500442327035436448394454098343684614943537487715124743611316110205140298486734342155034988383046529710096152507278925875663820911566214796560532189105264764654032424960190774463594912300208856029282671985834418937219470225128476083409985415312588973376809342685388003396920984956530853247320811064782386867353308196721528290106654796095584167997964314022730839075630040239330213932027139048339364945446020835032868186096886026318647012853929199298122197338136010629439539100824600193092256247893123884657797622218777714089069259870865235121832087396607421808558199199135213160226003508010295522728829029618036030542347068461715104675282654092905076791932827427804161422726635456914866415004486225488489745519878230605533407707426880611644945620928546272608444094381660428341117675106621525723636077209952197462415026675468990674112166291267655236785818170149526911968355748910552386505556854280952988212494002216181481055351360401435615731834006971902782335498608478371646263066970817441355790971304364110464554847052105471598291060730911633965274559881277197589437295015043214154854527175228761788067710667685747226746036230620340524309541655439854937982340968191641337074075009802915434407368500599774165235780601563666196054625358680424963181992461737449360944982651179264094498987516395349801574928152269189726369964263987619504009531870565775293315613236681736381896427031367034157405910329019641014746951127386023393188983497110767153830789590997463124781616869470482220235332261983531572748844174162936414761203958464588988339017791534967058081387275269881079059134785651066473341833679793649912636045892452690514913506666954405992943610853228935262041726945302966519658540240163390389232410610863331250182920393086022388834567279680645449282594202089543215868169835992944348500465081362993507271230668446019385336359273099490393706670821769372924936253832386751794022747595970750034845440513208352687038980352745804384946720389681339588665521431250650090807083218671277039176471016061391872126483795259335368524260793224315509888200633284276988910884731288710281890535003700725338165362915752542320499970724173632202577005059200792975743002005841155375896354926669833583884190730617642978701658582081264168817348471725224457396351096397624094749399329826259521994152349017391644974097032766805709613455046018057735908420673450611667982350731882825069855942027691278811898100160259557125166830460992775750496524240144591862162563687329587469932836983810172270940137598730098832612751415585005959610345147961375461118139612203065131195581412381190270595616797486917502262913153356475361753307833116380609885886360233307774645224021726706665587675642416196087595850431302898512303339139296040732342681283960086368357671425882770761653871784875610011898606082104578590965512555203386907043093418648272911093260938998853605754111496992822736722444727595076699042224566476609252747497307796470874633580394124820412812541904751558377960193269334356051525949301339737511869903553159927976880177936487927428446968087662094037206870617207841095884115588694115951499407703540550013120307413241322662981840252709309341667101420080257379708872513920706709595210822355365826436773859089584310744992495466736124913802839847542188214018505549171397704327892837297648468529029290360091115708720519387061630075020579018407356123951954954600493642070504993454482902088823721724608520163195392955660162669839520878694324294683385136448514695870795029263575487932518532348469160834145819727396652970977843041455562599669739043912084752417017291706611469205729804064203917095757263287772621512767802188049597830527340702069677774396844081475847279011498986321084193157482864376422721645108167805888613074341978676717174863973362700645778314429556534959039812464536517400977565883307492287322134836100712954737967698959600022334600946776704294090702495158070395651088989493911132731749677898734862410715296297730856743634096428909661970524479359435148170010443300674883849516553335472576953821399655172987546192350093971384504737730836886143970595803158107345259598547759286730433212208247467727797758560429852129106365146933510548913549883203413114134962560261328074313414141847450888511450844491963219909907832118809403329025509897836271628549589131117416049085944227944318076083625442778124501735484954883490413327520994456514990967783906682239462084747137840323668431788961511659436962593725981594842847963133577040069501530862836112887747033220949753225277197125662589836120575131535089947530338619591596637075318771923190137365379636222551995137637518358410186605182206741283293490619623754167293789079130629111275255915923803836780461024184036168775602281785726135389236022537217792179511830572171180557014555049265879322700649117239431231790944229908113274783411592983087653110395084014023235036762227153179327127662260625227041737004589829706216011689372162930473747560950001144527119405846613397642619321429740546400641903974176705401510456063396869090222175519628487584917634191613792703767885959534630389370426979533692725753462039256951222177954803535101686686204703884717402517763443840333934118833917470520220279297584034348412937580535259694310776949262180235308404617244996892241905937828043614725404631186000562369903437542242666916810446964569333310748650589884206487993148005361981980923479919267077751780447177133213002238538270261614942033846299018382045538599851135005480253603178841478347821268159143537927853458271825318658991879035035952871603006538095015982703996386260263073768177948351017632534456789113575964724848049996596532220627865313493774165438576591678370934324643868120070311948029217865332325140555167071965980232541222895995258384964235105137077813401541261250613082793690457605360651311792700810215155344968436984181361737823510443783517093969954659997251314926342580175417785774827686215662581226333582978428806209603505645135493436312728196364643864568132521212024576655121111462473845674528596817578645128545121673012712874172743610177893050703130764526702668253317200695438492779561883802624756708962354391686089930472844511564188657608021005820621004028444702278589895483684112328085515013517828986440220970409465511680214293276140021291062179272797124625944182470404730403310903382010591391887369881040870057097978100295499745396422622295218658726196742967518600728698352123233414540006842263110020904124991320830958264267201682158680628141103350028173598116209782598675613613482609986531381017195995227850335831698968881238467114375713806778200480597766767177513640159880814243166570363082626931193303110398233619639671586306130026935407339908014659736735800212518958099944471464221844691076710317131486783557401539602791305104604511415553633593493447702274400404794890056608594257921770416538073241860779402810914199772807262498992832706949099621767027311670722959903977107866260087182833799421086905494415105957737766609144962851657536408331927682705657621199682590122735820861307285869486027457536828041835684481901203647648104802973071882660614392608407707205954568835881183969480853891474071354985363453545917398824823892158353082954587821618308924087091471494814695996000257547090942741598281278045293616625850514638546950864684367063147917531605607117406422030788353498417689633413993309927815279370667588517570864293122247778235501296248875938143766687680009800698821775106394748375192912835373832013274785458143034996381634420355615756663607643176860273161158791908360392916246102082296493916802455725109132744791922095782245097976133575741147890320907488126667473625355630048222659775114385276620836488938782544467842493843720666130520189335747112346705060320945465011171719929009355579311897859486760413475117486596675964954554937451212388991209364571192281727858348899367972169642821267897328185869857867467376819451259027155588816846390559596604649518872402806885171939741445979553789464693476473638210268046691252492130580936610725317973321837088759031005759327964105553840589486718388893713408104952648008653062837670412252316950744040116880987227362409642693953857446471213861649906079932418719033192277296745247606796161452319519913337656310563209082371064928539646901108362480244707079091845589776047581762690302486846077203939231846901352085904329118266428522276598448942944425573396524930817368465730259295723782523905052900376198227853451800752723920004328108302324038161149557466210696544570983343678166005026540977997000631586218504919758125668151839550846565369396163510379223771351624086637125259022041965963233302276424487399342904096838577709477848252608892735168486951458584565896497973994098995510932291363780331566905942463823807825820459152040096659672419580690912057820268474764946631478216741778311309410020679088080799033768658352399077938168695210265438034572311892734102761491296660227909733280742336819573330864859797106780250888209302289337359612186431838832577687180203382429146287402495248588512429045616079092669317329205860131056598429099662844462920235102864364182347587821655558527309128617147364561142292093858308736823603589168738980120840561760470770461002371067232353960352294549106559745484989290999447725310590108287659766205892945377123822528734273258565440606516779200356187553536938632657241887619572118385680121761076916399842433050588768299639692140113794434864057985517217094247026743702381067617638363204560818157246591735149002170244749518114312550215181412088198907731137587964196382455171847686720337265018732080715394926775891114371406889572837375905390179836218633665521482394478821814719389647023096745691239010254910115530687246592754021436893021436755869349820586750254948733055531453926802057102588651525048651903616828281217392295355759386292470741053270147994848872507825372521714640598316656252543443831527067200286740041497868343065399202464742573110600379033999130734092044713550527896477425204473774410046841714823427807051536846205893682066193634074778332184398675419382266285974742421505674903500366145499286958689404832308096830620375274671468375059186598409322363549361187900949506062502437946563307775984429074829884601929911040073233471420305425696091890718952048053946904292875987844603611837346947980383121294466989652160460896383032412131569697450120029560086200414827520335992583985324929827818740048644787197015692529331280874828352075944986919367559056258315681409699258716009073378850798051734463751422461664302657238210351184858083475069440195317668861029958323798983155128868024699184238444481316948547249972583316777368904350978244773852582094871116406823965443680476061365216281270912202293642258674441118522491209819721506813846143666084697208900948380670341163388490073920380883666854087617331982447629598902412900727128603201938318868891713952591571783027174536972343584342301449901225518425046293958612468281435000139404408773730648790632424999724246801775426909368090147554594739306214785477541877470840894150345259738145007296089077074496601261927758206210664539307768443162569579637029026859026920722506675478399324296230709973372600169707533007990310545045321700982920776289724343243998831155429526850987602201843081933050716935915408894216129817741809381258024366823398549537012823381659576087469528595834298913708670080848187375756447995895693029376508383271199069151653617150599811836641199972226132816856192404810189369702952910045612319706044469856393714377529925956740571605546698342017229782803983854088844137762164521350890702883024117910871206152883042720964694643756701645966907207449644797297088130542156086421475579444409203201613603266042715161842528403409018961278876422844114385471677509272954852830663785627722780152953855846724523483809766896671505322451228216206624729125775258293732722966957219647837608827025494708253549234718151000074180838498586853390041721626590189037994441349091442033210644472488246707153612788847748375437224016043043227126124531170610291406057895815516953418989710407794073459519297193330763476877251475869914360187114004049090558362452967210107043779094075392844940970061752607502434329173969678459662872832915827381932035499274093213542434128790658835204370855529461070240003887242232624525011616727284156120327187784474849056252970624114540674004570050542420944380884147677498233939274376530450690549819821867969025865268526130001127254049513379863588062739378341157117295078198878882119041972972374695584706148447483247926930670042457396549166882624247190469766357718360566062660070513442097095505169143481526886751962793198847899676322495000428079053346578921224638646436734040543298276149573540659147340938255305965538128536886860282749515481344355198282711707308241409613460259983389841981807461162798790810314355459983451092625778339281763272166557565206678086864982319124850540684471881535515754797284666323466627632773551999702326848222588550072762625746719951537595319807240183500325021719230866961935106516463225439604520426740192949818544948518198624825623487429567504117414590680801465462892278906901729031866906427192516396488447799703183090546091049949748439397257985727834156909718906264377071584741811088396380428426465988355701478920469514144279249736880577337831863578329258963531121155553226808474206220300959545306961661370627355191168375157379058784380097790678465173748522425627838635248255369694132898834003938075897453717983496473222746377420443995302454780181168611644563361384424065043920016787908918884305055941428230160344270038834307233786823231795674538033072051421701872685928791396877139759600987594438577676862043554279487497853262285035436949072994838213084709321348013338952902313021761656015736083929310311797351483580176622135144556737581095698032145325959683837278954670606183500664545315439509889283497209317205088418319402094809976450507747670700023443622425334550490261139736880151723300820999543015128977460300856000260712913495004318038638825195608151923586563975940626335765801137690325131171776994885709089485674183681379184644057354846739945064201401469926364998887802898800954716568904697862989975623764280167506831359385623994288134682041710737782216294102943854435099829994475173284037042914489157627765370204697331420898969708694412219125414121780770159723110683334978680807383326160526289723776640328049230847698914821391106076926427781373652003948958814792296006530844407716276634162525216438617763383596006453602025285095604723245107796265224508549601836335027300005895265690174347159870672090879511879577007102878816077159141572504279529343633996913092103933778066435621931658347541422463629894599868505701012363697482559489606749221191574639035169915127770240515293410335879133612509775197245996272747578290138317215961646956373070183050743112222118339131983220113954543563080499623173179606456701140030943831040966252930568971536945384153454044117056201088224981905345607352864689101361356463472004310749512259869723184031147211763841559586271915709040599815987020838636295901838792636723135810868552785979313852732630856612340162532665278733901141170563779388305215872899138841305024178551129237055692981056002270887802863109287414233784345262683199742370675386067748677035439694418166264806868785887839007933523243082024909011351580938728556576141669667059823174666372606584635276200079130486148319517849142959482532240741425751241596871572439729738134783022013256923099353150025843363373695764031295551275878656641843557908070400440760165636146651297160626503591075122230995587183847691419787591909451147632325643281862722029124554347460039703407430401465384074185817201171548959758880106520084469372365401138037198759565674576288947895805227829073418322545237692663077355592101342665041628172598401531737312394500367487662272722859658895817007516582266322014573430598419393669597604246979329724835971639350486720775795190457887452548706119363987528445126083062040908123635965402657475241159911945622752699464807817171253028378284877142208991417310362124245294906753312912086945511948249270858943681358696148463496419825445108557273200233716338227294119560530811612376274981619116221684652890727255471474645814175108819751386757575454334419916519363758913340587825712576796402322282239164811782533984490124287824674766842753352902500049326054235958380511432495835886579612554773084518950845975699131176026983395694649300461834429164283935505418394724334109380013994329691056421219037719813624542660598439680468634777800278142224318964687469028966018711535089744595764978855811153566868064113677120892434436073797261584602435730286372643033792591794751472763821792498738761355097727728905365146784426642136965584522574072803964810102385695019506358235099665847257952075899600525104730607926760208743999238711452170206855238646473091182289695761063036424698648312744077453929201129871273547429087535274058432175035410117665688487121935546643251331313157251849969452412700727928021393246697485331043477333502039480389962312587045397738320059747927205599222512583092873930293011184067474808464030051255811588177308629013809261498969993000821203794545172623863816202825857208421934147221336621742017909736462123359085097239093004471150919277963051936614240018418601488599483286237412729441687977737421097132247031964650937748297136510869236549706796930414515252085453654164023474384344241360101813525411125362149313852422637197732149610914471640988299070068914070197036764581098387305104534298213735720916353060745995001174910205992416271381248587386283185515652413151028451058680845961132490822448453602127904233305173090396417403680703189709851980035450936443135262876714154316953874967582925510775406350255033501400205935622789416987956223723189502427383021182523295302482173305164629799467217052014828448542465256384558448884560133040728151415343087744094937242835168259426488901602639550472761691589785838427520522790788062106559876546615863322872276742441926034552411374145099112748664321123748488403796694388528436329028752783577201519166162828508581667765150860394416343155895002293180422718390043998734199740965032932747679030280536763915431153847201309585191782706855444532487406805719433956803465173161511509804563831997063698329475969193035212089103559185862422753275054751170634231538590034941527531303831538358896252397294128737356695916683774117543542341906070779674501156782932665292058038888538897224946260895550228368181106110521098229814617487180880204163539176510704929393724106339228692010937885508709931478176110053613451891388714465836236779356726238530681792026035305425182087374010664735903626335763646015952156496241242726062017115710221216778750594189375229028971756199084937567817770857215361047412587498593760424587297389119722361018551808952658683497368174987484086216658742471391518750506990150092245288378705564531130838947894465099807699418981659140365424116980119922959961671031327795826103611843809261764998257780918135680075731111830667238017149512061709113968092710832668045420400879201400439598614157375795233822596357449492831757105901426339038509969958744625678683497984848261185558346783707006882629100743791467059814015157496014212528900722853873099401902951090183790680224249608534666529343295305823576139534920862635975130811197480681955057955889742049072769599229460568907622239826154840984646540813941913562677404524583157278349629354897737001798752160511819924362963654819145642994830523190192344584931433347360758286991674980746326221640587213823687566688235740655587979064317693603021529713734574477583340876551134893058214522379144835790525138392836364460789564027064465526697815106251351435606861636502482049467723666724916817286703269041130316656627153560797013631715974150372999064544334802538329559617432421629408563789825289479005424379517932215125943580612159034522409888669782030745322179348483258945717104715519021331809757173037360061519754794820491857750714450382559265537911202978229090967372554448273060858319498278590311595179926168528628888535033067527818967885827360044117374441299690874843078215188062310511447625528933103304388420933509860943020501972725570760450866832298920661887709362990981180461296491009656131753579200784381979786516585618228194568942157830122665185228560226509789148731515565913771114808320483650412174881403290485014566142697247916873058960018274200850433936988286855994813675895408048200324722924747314074905181538402775618840984315881315027565946728238557318138628150070531042146181325264159065459582126435860630050282708821622149696669344944293935105997793971875269861907557217003953734056058024691418087185804216541727612821111420069191753260386259735600573496506454997368823298792949269282086204259624789071066312828366695193327902516411224179375085758694095848058812577266198259551083438858421675537015658050738358720067942784676357751596269657966303576655305208615584209243298399395847091074257083294102179613715586627316449283274962206348216582218282353271601099900885372261661028256729406853918456679921224241340674260785316157368346116184875269861949762716431258606154099101014584948289303638626762331004155564943707765749651858163561966274720341989410334712386891516700528862144164009945867087644607205338551246004910136318352015909670817756957126891351890898638121633148037512213928348061516262438803617719102063682279886150429916603839360208477828999987656799169396959775826307719590162235708644378157160084966899527561985902620395199973283046093492201677105142357507237760389255480254342220932823541638507420421814038594181755613256489173145599865231287320310914340665584192021738337416407315028722065099912537144195495525927349773183862479007056521282787862802802022069130318282491999659145060935274591424806989362595308829403570387156892968592769735941567131420364644779140875820598884901254042055640443999506269012920422449760076657187051933213483926928741617581694372183428384945642258731885141634995836064839051855095574980471802524891277602600360560904671345562461606429406182575150673400525004604607949592180841371250476260616440914044372198719823274011383287729303586781799274673834798037519643910011110099349723633337183901744976670029932668894224267999493818995686025245229123623107561154004748896107102393632614821425243361659254852931594014408624211369510304271930679314521380864885281267425643229468980860000621053663443333255912323770628839274177813120271408697878468982727949807726717518196807630112280284102875273013848885796196725541899174553605512709071593396450019965161741828903827472164869864096176970210882900313733991787719416755918879701558111359014287832941750288812461120021035186373939037003299893579737913982328718052030508813396884572373553645260415585370646151978308141964852928642662920572104874449550873189262392858110027952897581273150766758377341629197729618936433151476519093310752390791675267636538895931295744132193315329576597125013975002831841398981071342453074923725077961846245146202089927846060248559112820343149929803999827030854016857732506709724190322743530197075799085040369876951035325859371580447593489625657413185971564663264366685912780038928921912233962183687992673737987059599444991069267808726441151197202685207141591095500754437523396429954429899070000111612055971094376631811726781149274215351508607658651140192048017464092448839177366817617654416139984765205000534991493426577282590744260174868958594033498343109046325022266897278879279372974160454687299616770939289717065053679754715011194958923556116508729142374828332819263637659330196216508884055296929689329781753578047403469525655514648642502671821580342463058762420667834991741698132807757049150044066774618299551965402854229864458329106195779153068632246401072059093340605233744192696850546846114548774559764492483582897606816318644126646244202984984064131177899804183337869568217985623985519937216600547096388292754924787089906409978224911686842632695653366264368673904755375374401336828191616469357205598834198688358901871973815608186153260857082421691293363661824024627655811460471503995235583804441191851440119153478373543826485177652830765371973539006408927553057216859142037258078665976643474277007947426058839443511950522102829435633406970825544420245635026272346196941882295528058132165682323156442081597997560319790887754392884185490668938637489968052721451180938811476215428921002124941024420559148078645244581550257805108454743846774740379979708514065677260439259689467526456019460631012935942907269075150841464231175072411941164472153252271050552941803484041320238197935927187235966816911757615595347329309385172370097271211305939975942818251632666402579288576809510672010740334258422090895946365953703301952806703452014553069342277525158798288838437781310816282470848058535191334836825688018206451177486410158017741541631715210424673277425685988740146025622035325050974830867876368032357348923908881760158614943003520328557393267795942424439492234775038456347588519006288587482725979554376158667976922978752535088586992750860516290285272931347706157027922238918890599641006638446372746316153046792011613808191390221684220388708840665526548664534274208200206621460953653227212661986597724313468300362449479612293809934201952119903834239523982181649763145487684370746071335844114093118731400848778377923544030385867381407510199580413649847785049929527163188071047612061430793613907931449608521075335303565302110558961326768915863529143907705907815993393954862618738045598703629286307585764465911525787091951564550675170980142399976699214612963810814757442531621303117947475764502534160638152261437881849094961343289900529576444519869673030060353341736235807083760785881482195233596846276531901200689131508316841042104731570064372880775377835106404701593998782605330739887088630042811238405499822966776535316562643802512695672692695048192933963684155611251081219841964194933689940005547843496170197659759732850963020660108731685501409490538253939102145160070857872958919464215189324094895460860843055489806758055465085616927729872218984001116198883249500008493694006205280462452898810665562915015993426296084782024164252401897564736012967437042669779395425620290473623810719652239276452546477656912546057066426917630201291438028650717924678280997275722111821850756095042846249445931298274948888144687624744911972347394561807034554404197232519885603397380357359518712669255028121570801857155450716700877167009526477213702737452738565085976296195770962740924310859987365281347627005804445071119044576504607277298418319522423051580555558974076952612727242775396502691956698961691207438894852062354389117858740844020702972716400752838335894475717924378678515658820120565678162810384034639652396769364516390557114675577006417872301398754891130066621319324798185447066217407406772212219363402807770923416060708295251888284316840202869573188230759130080473453774552913241932265902351818518942028839187606382833388924344406555530430475804156937538362368023596998965111171374755676573053941847568445722755989023117614962911633902249441808123770182766213265917423815616104601710401560233364970641661854636999613948199394111636679889245355580418790006199351914769782317131866077322319318562579951771997808568703570328288448099562954134096031352437678518842437425247962367441240524583993433754792033584989597424276573269196188259739534502891169623535963197569967605971590103962917651041962281654758061758513930615372168273877405875475003146792884399618471992492614546670787465243708353749937329972066480758028579185879640856576205127181037345072943646511197046220050182244258804180220296630487916506823611155842103106110108839346909695389910041499386007217087579078939676856499834790315269614009360337880960345892400425204801254561027235795534492695156700824464851464399532048972331937841248966020485656104897636879932862690086948776789790114128912346032345005875639528002558110252206493228486354315948068414458695611019853208775970338585211655735067158072192492885700497183205463734609834917473649237945875559447191536434707778202327688859665030252153337690402507762219239470014025696381333578994509331982385158281882653055056446828087317126791512975414439815046661571871938158215388138165524785450367680951312496569374281544443657458810039024405173965258397415218233467599135829840161138002488842158248212636842830605543109791633710162573817143214398118897342267166565134890207752113935317449127926248508045557525913870406680790539451451679219458219679322571609165052870390471440579299677987864896464952126145498518052120227395987128800888675923067175584574534543404006507007612494617633934288394942033130284296890231336791404335613733987348112128858715818118107452090451709693632948999771873947026665443617255116643867922068324658057466638166763867339192947036559383155650985981295627311027377305542139091880858590027016257349924259736994533932664009866055013486358425559749756945398115842226314204984648501029421936634992248242255454341089066343442313227186196701917504551943250479437832762928747034703074358071868710899778537323905319050702403838914041238326809342413481993887724955830116100554884560849977493227747207017379005036949844167801173185100701108065349707841950011098885080420175505071409733310239605881526501670330581841148336394146400405431453261007825517378947819264295645614731302812014306904990969119400761652204065553046521098896462787305332247434810877339394577647178884877541966226506835418085651715326821960544004267136523125244303687711318582123610776148466195494817722338935128578588211418923773650713087275803224123381087415236300199791486661022774307402023329477697081224895303545753145591735718766357765567689905796893591741451534874124229928088196853092199039677770536715212604384843296106848344326568949584739425730501091525644460167962551500018245058812584917300519450339117942688945573990496772759244954662866086414757720834303157358722908451828366220517541172503625814154220257153109874425141341944360894089184218148338424165907386000910022040606340841363730421635850216540807236000398452598184391571112959426288998663096115151365435583742663718181948763432826268099536813283250481670750292097720956968398545138497416962309211380843067440007263776339220633657583368377951237404164839710056850646226848561555998072057155508234520312271403133885813118945523304598472361475076015688974873313851359055641856939856773412770101466239485278464295085485781210569513645021588235682894093245064336067469637622118503878219670965679359562365386653461428441534558063709541383783251487659373137966085102505539920025923540618854667222963250206484970300039581728231293556312400108723210429933667813992624008105253087814480910686392180365643982907934573517658613641850725061459348528796371297254582782543947650034330180774734059471865479811310764084100757656065304948999008043300068755135560281786896531344951824472026205322928670402707454447142214553821676818099210786564915281764514975536536030617244925591816573111556117331214213750726010130302779902281549140279625360171403928514183160113492631733183189410449641120845259263117211634867974487792626958570597014481232043017853972822730696509861169041844979245209071807448812963946597686168826165180838076597218800917071225894109307525866594504822329030034225422553719500684958209015356912858022988106180862205302721100773793032987115974400298387787070469802412292634351482496112026008218404374847018644512379497209641608929961429733152267301213904864296652514711247797271014045056186133200188230877042642827871271483064718324088618786065555532353384381140777861541088872351478188516822922432623103426645901597221944468695814768673253061544988625841202869418221369045006039937931871395325322734692004614964233419185720091527495004898820793841055715107060587399382281306223732452380574051353022453450756499204447658478933728098965843955953170149772877021956635899859240093253493564544564353159193884362529653833398555157343553126373736444152875563237052573567848266921591861050924523539184521731410878097253566978192000912433742533005542128810883037693206705185173673459308184658013568737186954245836148894888515639200157218729984189748583143331579178781908916732669681254053662480999014159968000233442490326353168980092292792704650260634761200993524941903807457211858910705659435807728638243254571851951963026205132630857997126373919824569300387132838110971964875358545937904099311863624836017080453105424325420774372888608290444945361452507066229157106577496490946268418582883576533908488735673339677619860584545940692323066192031966734757697656607422501997256588540496258219566866549805121799448600613675480329104702697399421577015994687013373461354515903588790682373635921519676014263285845077798668452522186246005046158492394293637586193991487273395439714209672394323550884142969492440511078793070162815768467680626249061898185310590376415521122864373007766330756772512476291969014008914510342442666368260186934566938953977658135902308715472883268626448375796487000569491366192905192230127354814372335008100071144409122399804379839536000968578012995820053976924007205806121648079532715845000629614475380306722320790029062454741192680355344481553972025500719789842648472416996941897390170885338543230314978879475164076228547479300132727192044745912782816140733298737520524473342687934495244002499798689599092625927551452639933029258862513688001196685754218629362428291464581034744876120861501016157898431574139407910523425879640500382738616247861509894493308000137086057910277606814978122656764929955921577376667538142091972267710534028760213135225452048005572449511331733033399811164988295873809238201587386354347679108606102063063606470450423049537241239928231543357454305996481536239010084769467798177206371885000587820097106206051356560518253197319506251901018853550947739805875439338151753469748889488482315536694537826527585187176968939029143995555583726442240776764857839737018102400398349967128488910471073742682142472043700647492357756169422514635998847247920143448184000358154969519131656641469448076720915508680515902576607103222018571029115784757189433025168206780080037402133311524730719735180316017623979968355553388659432344726908313552786196038135601560772584504760576851582749989502705254344302595644408874454663098734837769474358696699946877474913492187339163613146857520527107857292970592892636844588550598869474879566560567770961266299356875432313475499962649118235834005647313333251511188012130498603045256641229686470540109647847281527521809484217087597331897233218806671250139454923439773956953090219752822177769088130090334913657203838675868527548118426896270433434931958194415222725482409969406344911066186096692864645737156834856804890527467929509426619195977710067757184939510166361421031335948507968895556294625877392973838250615433926514794667172836418106673604225623782263493328473517456509727068073224502267816062352255658399038288867579390338761797869766571537910753890660930355535801352327717865511252186943977713966259166636075568555802980481345837145553546637788264297946876548545600940100680492985509775846903148282630520898650713622546079986778124160187268669837941744299381244564150255398234561777351512047889933890522797042704348491676867421866272306334592496251079627666749428434083604270896983836587590883728668457240708692422980526651118386542894991334039070929878388201956745811312761117026663802964191620470422174781621851991075204647084852732181068851024992388196297043787280530830095277102252977001655407845657041830152123208912216651677913897491334885407958173952607504927157458425897189361326637614445215407155899751609386528619658353859614742221715541880731624903731817943573707631151999326714785374519889800249859884749775841162068252988682393639030688136001717372722770718286993599633292473945648456145447933768986507223669968781229773438318398524740226868227333327997466840605433976549786924443809168772744784833466644151400842391051764683148795983802859729095109146553779359414608744834284758103876596121450219941816336921772856913799621143256809642843748616122517975864545243036987886661698483916231315965591619167728066849156043259330871866362831506530062966657467380884655722809122861589667657453885769094380438138066031268484790723346954775068116816560467823010737809413717137906600337353506327677683599210983265576849492912261004121313442969081017367478009868032995748612659274365082081348424060498643642001673352155228587312199200817253849302388541430051189294415157962822162978439456517907336682871978767438163415173502531289323493085540295614337650142577141416894765213358320297174481075248426656319718539577641298664241978086643584500412774220844480039212383099227735777526545681478538987691903863861641055378314791625636631931666962972062712880620691346649624531737339917046748005885936590662860695741244831736184298013629537908126250622597919963716165710051782736630173861051421299519723709139391410524761031512423810712056373268777338514664148549635070653909813340652355245531867394118671449601890238697331821181639591659560678179700384386605582916011190022103517188795205429662486815368399938598203093880552733162110011544240570879833078273414100654768336453233352621693361525613760011758199699024597669412008262583084712221765864796129188294090124037094568205761663179751626302772229897040137512137872426638779428256197618503844275845793880332197892060755260334924963401958972672640750349309038049592090531749166041601143260857905954254527283471459886016195155681857545516489278420122721512904682953009353090522520376808187353563687705122421174855802818556173343032673993693533980098392667908140994308896534702962289417300438193821234553227245901430521378669394122914880090992255278706767889593213248149199982411188266820418507256305363804018315530502679113339935032652882714782823376748295880135250585865350847904101595478126940435460920237650610776606649192099849795222318282926811207400561321173167616231737297580358133968571875038854483041424805163520233253169222670323828211523900102998200880670385715676762952413362664417915889996816513322337260551062543890276561423319049796338103852190658948420200343856496350805714328489370450236409236669568316815553288213391771796730513590969585489866686577877960435019310286154493936645351459283727224838649396250492873948794055385610293674263308115709117185474764993377373797447924141172435385972809824339903794621304359448943306676091164440154007046028544737628253984975908264261036473341184621787945563206992478388806810952122235411399809137817679179490371711598726135347523467552409803334314272023286814602567297367336474728628658336866320953632816772044664025887982175070573134665993969294922269570085981315410474906076102770730361731514299092584582814413838089004169453310259224460761201645191400751479196109949847465293491562358229623798359655916235644673740572869729576176761602203976996485357607659391718711201390936627455467682866148846902146789900416041895046429918400399092076920059252950444588488340412483549506816411115823620970436444771300992370165029234542919721244208091175736911201710173442657311782996154503142276005639110207482765733474299799614165718318057545168345805595289615810906343632418562739155196984606690067335311628703055005036750350459521000378586212029249672715545917538613651322598385357823083693211184925112947872679340229933505326599862099169332997859220733012061382607995447120046487164916007315164864105316379510617110173106427689279335652593089664198226371724027872604388438305046843178563464418720488693588498095000548312431552474405607614360870517058768118413451362918729507387589694848860695016151683408847719174195385659420275171554307416231268260100576681779620245693487905435812485019580353310246948717017314277853337391450303194811541290101871651734743188813467142292747166893492634627198312625408428126448834067944441353742272768887746663912897893732518919303556944328932625379104537840827225911434016125280325384393123562102425884253049909205350727742688921245672217382451657516341845090108065351049996282552192957643013949994368191049661049197349038417524946980632545307444349286610367273907813712987367016207856214464070316492749727410449051220941829633884328825229944361993993609531125733290178299002676660201720780588978165249843335590420531222031454738801308987434573577572598968785523676860346973181406235514006026576752102652574965160471733078490066773676935646985210641246335254891023822883504588442775704660442118082989331498016845273041083726878638162405563612916628845865820339703982716296282222326378986814078040548311884187393880470414552192890571913677671468117200771220927132150484360648711740705869126181864723059876791289221083061103958213844973576036156014247163331531290114581117488348353851067637562876026251808363524942072820768317046086891237187316217946049173409963453968035838650557983168840198375891199457077277767366506026473973457318126149259408468560724269724159002560969727705343926922211451872612951219961584125406938088042893091247674460894842138712803340772355114058053846789533935639521592960854691299150953317520663806576618425739654514526128574245767052389019290071342471669193208430031590628293932026224176378939456546223727161948480261882940001501211674021884373316673939290432850415669417953141470408668650570075004062864117494658835563313655902874560033964344006142131498087406481615783951439630943820839925743751780272724938014027052450762704334824517185098367535155021245292226323670855246223063469084509138276593342209981296799274396118974261371767872987796409654242461199410450771703963921632209434095037866173157413238738124835105772002606931779105092808040785944649288298322749306008165879570214081468016309645821166807234459444652966106086997005700562351585539817794323306326428336229355353998559015788204593534968301387942702248994937058903414746306011083930569190996853489143986025512561382662914962980799005155839879348707143691555869754018044905244779942368777296638263571224600999299858159869291698411927065083013081632118443834992178259078830668678665929638274283554241696039525864694823961578526467962024748366114292350155733241730150212698361233437310040255450369386553108200434488236903594545624296201606032815530923407797311594577327610609020594008138629735000273939611871269110005125657831550663435592806490788734898111209709460681711174983434802196968861874868194301500715305876416242397488341032406792717998712432761560026409588468819074373889996150070990127503784935600069698917083629728601932887723562605540620702651776368137459864479451959364739077465454642706379887518865729327388791522986681077693557297941632295543314541867188305468955331366134700502328511859436125491878278610573315720135469897548038806001672921003837603169681655914719265376097120392592612739589576263363843094523539309115832945164704007956680360087960627746721595930416568577984732834629118122564245137224663870303719723757567610247224421889916788445069047977370826916439937221406128718435471976766594919543870462344477987556483681793346757490105705120026618167747506317426573898378538307270451305778448627072477741092069452688970373380624595455895759065101283155927761972444126276748095580445352461548575860895849090283557243646020735432645287187561766093827693609360154600067510770615335770341211456269185721434836297422989849686809229918554274727385137473098523367753667555822400679154984087871405325684292645396114172131699099635789971126388303606928182164185855322084072854652728826888663205729815901621827814294076205711105721725032435919056281072372772450611253087168510360789925689772310527204463743905859994632504565521382370118814152745143947255203761614196876211394827154696654619539539046422870613457046752326220367611723086785886281918231239051904550985236840627896147800808165862208211465238386462052749811053336714051982825874542611053171068412065027293629985150112563733135163309076445149939821123863462626201657607638614456960946662414610803762890827947954833485071391497415653291395221788066439060998560105665821831138310885895562294156134237096743033397306065682943142546900044428751949523840844598988495684581572579018573027067702243301477412277886624933120103001373535013600243044773504638420481918645411935199925126364426314970424987016210026668103261323478797969848752500990915625645803306736858563115841394748798939480398868979085727631231503518437554234495393885649343861824498151395572974210864873643253734615637781995273178532625548337928040227844176757516667102334035765469194187497665136941859269604162256594258542588512174147569804426754811834196267727316518172352355631451924128484776440392894128133863108626341595097144839129604293627624660494549793923118715990372055612141170017347450527240558299556869957418974272523203057858295153470016700469304390276986282737572894008754113692361178531816407045591812605701661754341466468013921687680242005205900204293469086447356485684247279034956525869903411977941715496636201766525104225226122044221541100334107411113609673324595475464032068006682540261063124657951928120056771545487672597174318534731918466756648970909985807069478572895159701371586585251582359732292980660526538219777128218042926646599123505274770100438168239600934228475481042898758655222375544400683378187526289562002138414962478521275942360674747153439387508680636753791107416517499987755206452442393290021331635250883882334044833838949572642446403105032455184535786015845475245509110821333593573721395534563895295320922913094204097421353232945780255407848820259204634827825964008587822984549530627623994953847655930070344939164901332111400946879117708646398145133446212981256075129943524664514093766997737903411242199458154501422193311809257979658210123120808181988700064802285692043767580869628476485918356164635297215141796541048537150646977733309241879831804794902047142965347443508497246710728718076503319894395443483588308424670961117943748839009367081548832500367489982730502255833292845125009007689651352861464367276733368221686310917330181545728304351919572718978592143046492855217780458363512487465265219581181808393677455500537719512061031983743238125669603642979896393775457462025434949931648774850698632728515935179230646181023156263264288250135472917712918227215647175274289391872452926894609320120340841540216044384498172575001562609790384201923947775320645268731486841865189037870587788478946636756233817045141891944797235016749418414100477011681684313216905754903182325536207765877513728134487047784332379585643318307912222349174182657100129973913174680671847308445070774732223588696897885388668724866911918185763517948811674698531627754803756091092875675079680417692665106496085044499514593866189209687157169042117694281697760654436436283457056398731767863804918289677694108585590565649552177922844696102828742761819885812233566618910154637433464617683375149207758163215183094029890004313666283960449752688592530332762294058011000983243584984459943476869389207892774017929924405113598047380030977767770862319662002522189777561331529939428727632596393734084567362757249229286673638180935566162636712410571121385988079487269929471056500644633959132077157547260497036203808468583703403105256207706087167188969564785164995955387837003657845351406133499608892644503608346548258350463315061776685065368322623528900086863031870224076721967061562263762911714680691310932147842671215110568596216718446153295249898006180057039927975546595092915212028514287340151711211546872011369859716668436504538938655072259742533116480626501536929032401750807868019012367133307774170245423600876188497932368457621543007091324107532394988005263547311210521920453587864132376314813527835273191280814796574630795106535819106103443868227788293125860796076891554595048863042426854654128086451238763405843677352341966477582171348439547153342792882829177729340423269497141160462769658262802880628760408039308426862420417999582043501169177821666744889433288827600195530342040725007031349352024965384059140465238527499496699066667877980622989733426375335493901192539072273376536225979465600965132921731360816465376100873785020005236482222851497967518775434326249994605084160436060240374284829734017757105398331577108916391192506718140198699468255763370459646214819520604158189027560302209782881320004370924341835755218330436332760421885390363717572375141108965925158741219806211855956750259099718265000344470038080732089594063732001754010920746560553897588445962428528279501598818293400466134035327122412241160167700845934520122584701653984097002845079785107414014082485102707931617127717098362774292916772626381175282105412175799421908276686731354704759632601692857447053011829913952833993974259278707246015516806874798072080049900205998398026149740181678244272720970855549888980399190696017175508694320036481695114589289843654129518114721332089189963305954053177802624705177803370821260687496714738367091356643840039591560576244959031351917694804676787145565072158998544043162832224609340055645355453471996592386125674669701846374364712862924430288571628484001482787976519269457831868144400455058140604288064774719678919652792825449642266317108926761249450146487277135014693363425884791141109283721662606297434239353754150729746504641769975867475384180549652722752473705710735310560857310486351960600015519578065321718825985875094253907581448324086723858949895453334099721594068869090713650570709620892661829274941319398241237690207768788024080244977229448477724153343597571229286497502968028104849190363884251765545155401974724132168925763308600800642321614660032089471696131919182318236325433072684753320834905118319526977636153010622606998266897082534805752587945880965410798014789610448247549428857184040245291587465832170546692009598965542002516997236609577008927464487197118792208998756838722326514486934835429233483439894860689098441115168624726546438679555872013352243752519774406878707534735730791596682881212581450948250936558225770734688168450863575042063684563913492625884327661223809226226961995801456047376195842641125065552070864191789003833988133941687912480113424350096225564396545056011096243922672097139121239717271602974979899677475536508238481147200490644583360324242155100459451777883308165154172820442606473567941003338627623165964946312965298183878352656391055318953406537695808716491387315899165887633079701413193808840232319884364817256369643340426342926089161073523171266152796826061795875237910756906971484538383367228618228489726384283975439992000457250405836699099215413189541888750798018195579478815721137262164421255363764027181314817264330988945065163370251973755325818495689376217300803663493776265755591364471042968485365447351245157884417179854167082649083318276674012347078521400660192346370230596095363879584681292709955801175118659959903564841133936754452161434430119169528136922927847846863208777785396870049119092875396052980062121794994300636647548646755395886655748009937361927432941716562027142274727794916963585110034005034983331670379716259039185118702384233934035763362050345803350359740178842579750243655151841267160720276809997316687928280518890306296423895922921326614005573124698656842944765661667917239719345971250982699286366085900008266251688126763661908280377396395548567801705017240597512290235596822451480572117300791280679216917689822558338907471018270733184433058950516697423133110361371817449023127639223679842307049907021373139081492295782706970468047703182194796981756037543865059978191369267381380072423913940385208896321088781758650900932738688261340141052615477817083378589301303615338258387300981785460177107926918848671156536727100457508132368870663839629040858589531666329231879574083475124701973912486232843443203286473602673511609582350130977423892308064537832504852851051812282236345439094783703560222413804219522486120585631788676468333811336283904701904136498746613583723643351705685439277479517175656658983119610654506048852473464882948138610643022258322199354742818275034054892461987683317240960529953091637309287686923211726701085176430391339043819268949506740964806344502535633520828142700766507961871992360008118261045161365640947611670619103663886067996474804256298894336315877208005510513369065741371515489440866332801115331045613796113179536721483933413352970996672510164102871106175525588836347480352923880809067454616966778502612722637485266770468767266724105114684923002554864692366352027407448399083792908813132122844252560987067885754807826690962237876456812845951362014026777868949988818710848935931594991676548002831493393226182810130840975717232706199316723046148426170121734942632886634416804490443410707833407661914836463896514455077865306974734180519357773445998055094898121036185139582324032512352804436414979541452514037654922306090152956717330981241629069203628450009693644826643284232135370807597705223308209184241674229136669379329386936795424248745526693361161286728607602493161903758522944435748343234999025376967488310327427181618782322746053956760104307250501349130538506777960774398136179597220212646336881125207197096660148181961151261683632996109545890279801365875425821396553864596985619291509558011786334683901706324516410725032863509465782276494521674362702362007414219493454164455431205009969969720258854704960205150558108797075621870090515948067389544887319220126024046574315567526149697269034900800315448246958960350951268395483050520584547083733149294759998793104805222073246869187782552354635929790796091625788626481580225066076681806747176091154932041773942225211552023271587319503866581675672607570471542441265847330296814362949723992587611891623841080260315280894491424678488623060575760962109961840677031540105234847920521789699018729476412968248493437954676688920306702274767186106608848607738000824512706685991020277418100217934798622084848372982296198599834962668103258033890533746540280275223662212103698565584776559581050807115982094040327676161558442074215952960802033613850974336553677660919116127734771097217857538746249883921018900080174576251954348273113821365957677184899493863759953086163245341099525065938770942600091750883502194506494808968062297979335094015315078535262022050408065391418682261775754653887085225732317207187042244886065100448614469523295759657747829472628529829325297651672007743350004525482251260319417336239668608467369160434811848675550645154202795428169092438130126403173352124602535177363323144372213019801835089273775843546624082694734891702308110809438442371210678644088992613899617478075062892087974896995299704027776444013460228597202508556539931483683814072114065776631182217958287263643830516639643766130642566609778921837770336895399553595480965926540162400555716147412682934297026058988782897860277899449914778860890483655258944565717128143094590516300382836438798632303153541585944624655719173717590171011029914614229109579626444761038003791189525270167368838600092779851700026662428251942184828286312022166461380451037064564211147226133695286592562046836442535551220860653316626682767500363861916168817876618792656615651221856018244813460904887151447449425626869354861160868797628961274765012259097270721705154741059315284842454373254525191750430206809380289941014851005120629083558043406271333836337276451745550227878812486483890761603896386013823836902920218462520999018299925960862322100805761961026446320159881058912918388843153920085801722432460784190141982523559414011812321980363578485970175301846162418924286511260217399639391960787565923575304508480261680124219621259549605383378256134598932891670760187586282940567362097954595188149961016025955966073025409203330630722878993199101630192079261770183919373326075462993576891083074455080706967310696460666178988319714731254565396435799451571211003698208835328998519452598926219512274741312841940821822115462926222664161337226634478751595101162213543150843697119752582550333941469362158931077348015332892233697647215265232451786579256214792223964899485423707719906128506851176972557288801798748789817107157416920410299081574556279748252035912493936318754509652061997021886830194200659689872773078057203646826704868953733715734205830782568498156676760343497222001286128297326856250157090682775744288826939218114743524188930436060693838746520903488023663137635617063136997339792620380630798918018071968405307547866065559481923081431842792290018330135607155782051738783096668076247916482622764752018797149696947038296842987423035516324236543913417165965763041956164823099654028603728257081947191066213010660837501532366912658073309220700326684453858887155732778824103857567101613319195708469898497905195789336479071246400951403306828832841396068277904960675924589439900220401810751104714426562538855714561366868382586659557897451434475592300527934289731902034968762690496163665582866380317210113794724275145789668228795084902395845123742504395612716242255373152766530307417769064141327314317707702881733155851216166981739482612295984155126821746437959409674414404286693791681989211301983978629791624309109008174692948773541500392863501363009006650112156759744435232030781846786117241411040320819407526893145985392903380423292173529690656638672602406995115678780050247447965170087878695304223910637529006065894240877510703058338196171264918596126158311950026426971050697694212887607289471048418003624366470646906182127464882897351932156063333050241617543000204048389252586978847513039372864992200169500134004340945237837844673901790169958832988150304931044064626525351508776513922741186174385279054328770364714256041334674567273538746901797604184339331387906737537658557947682687291122567565549955104197492245315611670980507852038195614851918372868407700444026321128169322849820388534031671695374510263438765250098047143234037405247187771423701489069276602382083173991683606701109995601755922077648619208921643336440325158310930100280435830082506922714272829380807227543241099550123328698956678422416514237925543696973290338367261482144539631279838527357508310399562795854795619869096493426402584845566585345368624666296640349229783721010314789153316364107270779801880387753145583314883953495774300820632580831733129527924966766879953211962590831831266299160602989315049506640441849803794866663411695152018267744479272744888334819096269125490959633776384405489586667573521167376914013171444398216350230298472564875299626804960374788445251735345425474152361601216257855986252977594081952738762156784223567106810088585377550914382906155756328217653766753484661999926075847533899225359716685725312509891820101334126713805480973415704176767063728455019274373378159301459788388914971542447007293398170211918476869368116645901335427754088156559435387974831389080564415265376820853143566765730419453189320545139602468001473412200691150394788145641293162355726180543044969056509064302450480378401645866003601985474049943055651947879048076467483266368918911602088762567035173868802989713365180954111655891901976379653553624264288784506510695731607239238004254236606233618355834144457269693952674687035567135227703107741632843667779218762851767692870538584264732063601605361495017553713021153105559523208777657428575640730373389550831679337138125234990897223993100028288387269222114536327335918243582644596725200040121848684911541819157190666291421260970323794051746109516649212567066044258987326918767252109676237218555286305549877637144433591341854145332262966073600375046242932013104472808064797742576020770607278344915782307104560271570897625298871459362002867778280535600679256581502948465067659335455741345007688645836505562709301461631417227873477354422719861008847459865203089820896825128092374308541441674798809455798802411587049121451311251228385964861248757496014520030787194997042290919488804052612587741039368449133936807525815929044780783316767470332620153078737118298156891497181702689490371165805681658082827146050992475293795955729609705094694918968638601505744256451892145761293840962863624006714970856034131497283644681684858399170534112631113348268284658825016833723808031994551448869722833787558926741953422410079614616978412578659860417997743573571539733246556723726431914045825841149641569218108679858030867927676027404456839274315510332248711438655865726751347131350835708524791866450966881752456670215140985526027531233789365598023374026821933215556260648372854128308311851744057872503516509998035556177031960598654371958903856107008850667976780581325410011103591719105525773052250751204756974845746987900462846895758271906067928586354050690924443995641798301626404646311302647916148352671849257833166276874519721276510501523083828768618503919054624936467646429147059740778408174276024847573405133607663471084315920611286055658052731214595303081934708167378797093972445514288755980437312518944319960673724864645337671137345110407444441864056119297469924516901991892451668383557726907627268528122934467875353418032755680952425835563759606048971742087196275450082347219095762642401863998406913238740645014759858658951671834751115213959698151690117881485147471820603866371156268672980158077424371371002558254192015893105361663775972967184297341958221642298421629918250250934253851418344862630081890775959522166124174200960959271913941075919610395967855941910678837073557255396247934254534414604111014192570181475273582947179011027312047032259965356858405264144345296023241447436877471547630429171888073689215723473642339634334380245123039875075436264477679052877512428082273260332339391873370092944243642931921586647331396652270907638151077368624080945792188259739579542745258120841984935345364994481480797319421850944013077409837635962783675658622434703231494407824262953146399261575009739554822859049849713374240418493820570616110461945030882566207352053883672262145088599954495974796480935850721079823909882206904293046958297108180689334548879921125654370595164566355954831364964732936540691344138583521086246052731232283918513315760111071392265706457070653197830372402329957300410291014013255907896369291945002352917250468874585405368550730374662428161217054352966982459508571785284006568378666189440515278795766896055579444212820388787915723497713751436922662208753251592517966352768872886005658995763064024097289303689360548264897864354310669811378256630747333394229034985142527406465249698277220338453581819875716337768185440057084343669148391278196540275957140112853912837183135869587666774103846822441579189625187928543014693366079468151517828762976342896992187392600205736547019613168687793997179571263011664652051503329672198462370638348882558637550113864348940561251386571413045724162938236593901815773639079469036551428643825057966713322136341003153165376520809839460279328497688273433179779076223452323402337247320011536057545837424335248293713820248129119853072476302466377446856456929140587709741642467521889101362231294319515347266045190265978766008057814456266824589988880463524311471343978040891426973080435125452287142065118976624292457074798834333057333895252297231210453583927084921540761762513687641830405575343834549276478118333380611006725200608902195163497038022240000893540187749405954571990351643608344313072757389389346625599599897500234871953255270866330188723799074722877934234783731901507811740634429939442811525404311056160153588496301447177771834258907492459299398011419332091473654582256615879424089253810227150438891496227354122725673584419354832487886236984286686306590963851333502815235408639834922624244986194756754283360000243197609358409322028482151430831160491051943334568293192741062133651474800690637692933776538353511434147354309407865609017022851078830697198023515203751648160150962087799958761924209381215597889532584386559941869068431210009055603964845946884755211226046130389619354937606446834589171505280552221676976661009022910483767800478185222203545509268147543300870227845786542481266251327744667552751094269536505046166715095592691233202674639596389629395735488183167282232426775576935482580683213155079873426749157690289079341828350683281521409805900307895595850855063259640257550342695238046336483173292683306200846223664488990679038487039524799977937740848136126112793416170305480291939483298660699262340566878837759256548454537402909061460794775412348312266570693498256972332956956061532406416823821251558247639479597457364996980289238589295085502161707629091930256336560376863529747429723398881203796145199517386395704604358066946349023129817397021926700503546699618680670757520829310849963323300433208717561336760348010487199450848476205781254820229386835482128080304552727258959135502024324149035544818667410725915019075702358547181072517593030822834844493532960951567973383892833358910144430803058144734118961599131769668492833988854454955544963037251692621607643498372204279178716271594099990838128762856132128692310125561460540993837507128649166840335435474216784291944822040409320911271060564529713946168284209539296942613988006548694527221997059556168943899837308410920878929664666740980246125333221140524485216071160237098550951120264117105561891290230526789738280298526360860906086179949229285276353047850250102158098829791140037081398483064868883497164600714243591720502460335848061344239313466863552231793672525603102017974794352274164716955976481104518615158139155383284434494544877190102637734459977761088711688186363765720271031167232029651689086305175653902014051670035674184450085185976990510225360887608818291289106792064634228438093437243261233308975872437437749353012330054757849513360845691106775338035551105491339722657111268052302100724509985560417455112411827555904873237795342881458077174622544960984630374946620032457178093647534990919662113344844030998413232663642177008066791596428913613909367041030577065877772255545629200550016353890363226382375262485028291279759715195156435565787903107449145929687985895301368406001737198165397458714566552133815711272391924695934963643165912736039786187116816079470046953776662059119706234841120090003020961434965287000372022378356797216607642092549262680523289582258957708920440985488785517638763631922713856634225528211762829771344080787417982785698061334425141561279043673367492893050230202091086138873497028751370807584597310665990100237045141793025765138674231722504752107733841064879891261678652106134907924952471808510413103411238954676824547138110870906316704244142031020991562649941341700492771001764711355788866787363606997883720595241843629574830900054643767001397406919991896987488141158057634399603954701865312125592804786395332299733899078629612686653204241952254584928168949138274754196306375637962551906838351791324497091685930161967004658186636850579481530113777294249527431444330756567383675191816325211891516453463356674983787114064891582453032578925710187538976895214351115666411807977349848969361355549569679581776061891285473922566545924888223679667447875064877140979442141365471774084757171747935536866635041869093697078696438114386905546119801420322717636123046855211517411466596094960696602541547215872477688643677759687834867337140130927970313919005738655082275302447595282898279072768510396189235203090312965135564665466655800648795069579196542396570753581718217390584299928673038462418176715745100316148463003983412626987647397812468595392527561248898150490292493822319512856353102570419050478192419451787450021769887870328707975702613062079654644193223289052236258294748820873252266991850603285774421776331718723145962438647018135797420637475108240069790673913229617263378114936766170875350108440631250923587962125647157989014574285348004098753194510930970848906684741074613885485347147387026834792720161870259135918395344939365555944214873785091664406816514630539201315334219867010611624764968551339160610753164523505801943576227462520852887872109044163506145786357250711051935735690875616186647525718823583112084281692509487358509380270331161734070995688662126210948190798394428089173460078305866954181183317543240403857467049984660482527580055640646810685189428689260652217153021860750396003625068039670906473912016500571816575711384591624737248624274567610919481902259178802452881879404417375836466850228788822605292260170358930289433848779796912403399053708124980561933598888067049377676701337640363997262407461223455486152373235730011721482108564566653913409745796483600225327994352475538398405785064719452671539618247825997751659886520701980657852366090900129124279973063837443261084731006440788921320769772636104965769809685193121484559375798036968990428438878257330846560353288721420319587588092331726382812833224156100253556537821803412053745017317927135386272771635499145637775843392933076077023679534394029704742796797050142723572154474786036662039954297503615421596239885237355899264559260616741800032799718828000838996690594907534386363686088940100919354843633718653210364169378557576230290802147338998328780330354363141475196306802622814226833704816782496355158414226906618056722594178582530251455715303133593852997791677880597760570092475765813794170170526233481007125179858316985592149799550264079154937391267933078723317503340175934273750633997934325795123391730089445919366519436249136689769178025576566754946055219829851673359594221990898956755950211071708121374938457317281232290908371202708284229220139905076127148930940470483520162058946181595893676404907447277102117571952194179282429038044843383523762658213887525821740224592012841361472387597313463778294597717317931165318604391097754710345507308116208133986221483279347968929998078969769383485243761734756750468140065983126298117239718825640605933491467178339506523746836038690859643710971378618317806057967757287766187923181144423495496421213635506541906018779117770277861054763174683133482561750990927818884219367857357676049193308104836508946121039941487931694755131572603868790164410405560011655891148803860843698595945025506647509892721772695102445286117511146665620396742756639896350497519521927468362849060427915858052605428645138577722088317842317509243038358884700507715246958791548155063951966893855262885655018816811556679280729756183941281788201461444487749705023884624945987444075207226755236831006895300215907767137804126885547588450748768045108787825878756441265572859375450111769543155697972079521191194444936256935471188542191107032173387202242724521859391110527362542892810062206801447132438917483160889993859688294254010718332438933404753588244645189437698606841620473076875290672144228410484078041025698666626986729403194941141978431886083047614777590015052984801094535771857232374483559257578489628988055161654446372421619623253899458267775383204319789228265995291915235766190666589339640323443886208065990037632367525384385490603875712319874648997880963191625011884177389224872470703614114591442042076152892601860959385553684478456016696735706265831953035742938607895678978619838113506945090231681334970819949032152119565016245485253936481764465619340305507890520965498446500504021835546245295738102804821996153451603071773188500766281421335705451296436918204591469091374957078787772012701307297572978266573358459802310062556672087392969586352793288283909045772763045280349615331416538161313479210425609116394855669163335761774164993633229481045038743319049514887619846208282113292263621942408804144004257371647010268582749594208178332861457886596733615514250555245015395298649793003194571659562986507456134321841828777887707708701737212930040511322881525749443879748617843914798281947992237968971631761148121940421035147493954673361043943317141284312033604430746615775104719230890237633428177406354382229364155782153210103224886614058842019140438128948105460119266647167648178732585009863487111993958711675020140062891843540178690495353291919898921445759447504474540150663390408869532629972811225942447434140634385888870105871860349037936741885070794343637093203599277789155988800320577385810517929028198218109416315167649619211424164737656318699959893669109233222032928284288840695019500100979354386209193859805240371263259322039169166431721721500058983602189407380621779374663400059004807143302349344038345837575109873504043814095369074370113719511068780853922089363838655562381206841838206371255380581545360807905448351398123316374797202103768466499661068780062716867662681360320392599098117765973194502247426590186662444205995684681953963802068632190560703998102487577555053881620488616341431915945308682209820312902139710864274455393975681308957564544158695989686019723144038824274672705079425563201534457351698913430745532178913660911031290440482845405448854655468891866156389529662580237617033261427091148241444712176341950154840913795491467325785520641682208020233947573980606395031191814747254766449123918031574622457986397011827253776904324557814106817498784576478819653419803509580268816040662765480320755305101925572998449904504210080502683805454074046987822463496292627306302130416924767837642880733639637626571003376086940806973277948873046004912570169406623791310192500755173270722506013392436325432092155006639768807965378475031363247432970494049460766073623883871773105340626054060661488758082352130536436363726965870794132763235680701186959017936256711760963701975482475137389812256468418537902645988091455972873471838166744882197786310154874815911632696224163778103582164569910621641630904299471038212028480513406093567674342826256495046577289177338807256117634341212979068202755627855717705582770003268770391370296314410451698489482576520895259202763858587748718666289646397451461658096881036983207392204092772370149000193701698307241260650406971297541919768348425127333479234563809553492000997463811207034125990792172403384841971942135394460267948167584237397332977657543175979414089015867350645111776016687798179643267684617606855861789079684640637219176041671499070024086826286610206399373457935190324723400989675494325682707586201743835243858210115335479185866976626496330919463279712236142642392521010746301781746488990458003062747114130656451184912879290331834516490931882980331704985171123938218294199212552199969002650255831768024455284118772274839863844635157195883916421805699606409597529388501095193579930497369687651365300472278694249046344177465045461049285206748835057312426210099408109972367825782366086700844138761796903276707295420207829465273736653142236772918719879483510820057035993888441839770570729868382670608984134683902530058258885343700657891206550166813950702915309017315001862689775896033498958838205732181209858657621320343588237404072778646425372868762941749857565372423590372617172891281219093126844279328118403990725709921039173092195751185669367697559966402886156305975739291194363103919306905547599144732863965808261185495911236982343954874919448484587300326429786777955058471952577350232239321332799189866140273499394745843955777420655323569815116225484997863274345827942497541029987965926282330796503596314680755928181980024214349032648985423266581054582488778952182127291748998737277683313528225556395650481966778904362311289656860043085701380397851453517897434875297107743788397896486694428826984588889760259387276875547905069419746158270360202803042398698179805660356868318077180672667327667900356218262723020692137275207468080795035328367127288375093687349666797440219084484390228387501569321951573612119906438346769892652383689343693307758473015189173759683301368956517975863756295709970338752142954138857955084279617438296322873140776578305047994276085095785646184320066821918298631885544914401697088930905554894651292059554042300226666859371844010418902917066915358078916353165321507283035307505495881929187065936558471148833687969274747632841730948535191449769470490259957802269285573388573943776584281924973985774731256475878152626891513266638421852039726071724667257797614244353969878352760250397274447183798274991972692580137646379643110481127691568924322288138488261338068000991887329093412325847766066927534320832411022860332172699982895559691578816936710556129513806738739554831911309948807911223086346634644649113252023226797919962134187570651987905692263951828510239200893359518009613669107102206615551549847366509841128032970817925226302424335581180271231438409466165835836109340591724984375805743490739510956837383367551485728527604272520084884938256370519070631973275903493190730125295064291647488764065183904520598761676683187141351571191442936302129707061058594316350795336644079962407271400733435837160875346705906855962450491471629036606837412935054942358656434461033983673655419124850631582133834782987267071224265157981511410779239387151447133792295331680953293702432720270379735427480718555655161756245719388902422090238691672131055405849471191439482372501962651265898089810671102145247380980002629053488826749896682737566080293334564527543288435541726632201200219740089366129097833722521592012348079939928427276276596991218279021789880411847231801333682062623998500079593037956194316267740002118015076699481218486526296338845510693116967634431894984352640661091637949955395162446042853866259902132548879894640826624278183999876926437133971036015566171365667444646491205257978788133906271943721484317315488336119919004384576579460344510969654781433287421467708831761583876957928757258877629812833579811335619781530267731503825122733565919022094137046289816879345928489431563949086403923102122024065818237354687568976326576998901649919851421001373107793396288019289109676351940742812611415984155241085289092081276749557865138204488093303562255087644231691182636612464035182754083582963454192790475067842758309915709656130279554301231922955495964688159365925243914203837058081525866541569285497287465445842246159415730820039508263957554159174080469475058340089608168822563421853248235801683432455158081980074562814361421041288692156396589971360222077063996304521946706201266826777303741575016338306246685936508676386938093890830191653526999201945235967932584986616263349920829007423886882388604008781033854445139269893548939983986777904365044830447691588445865488356605138116523950353167878963243206423841794113063004196474947586990396653363469400343219982222541929849663668872033979580915958447208056462552684608506394398472221646625771131609076725736860412728443541036981924598408662584092476512045293783347480910258065801257488243135059694426259357235452856075057451047401804059287168634891150402547617120251142742368515347895323934024331167330288959678797838526679957137790124102870231563930168793059827064786756056476778467918533545890502434828056949294405488306742246512218950420902657043884303483545716850827022531818102003981067695903324676328091906210009822013939052853068703171857758146826829776118334043616328297230575624615709781539395750306606677580221722155476660603786176682827400579741187078287498802769595849982608430533908838218205110803014309686172374849033432433334148907572718575150342333006783794144105299319294692270686640065872379383687478621747566985839419771175142873089493252058133306349630802795391334668927603137492014174554404357776748266883822036757643561526232373592669065988792109761172917374224498833059218186768348617419927580089615517447748664894427260730559028745818779151195748005222759734163742167497881879916091520104683475360076572812586194265461163848617415446085864041389849359960977473853665771925987270049596361656751173889177979902243939604953793687498690209501812919605209359300330020805516775895514008764547810662677382206250112713446559719941721446256458408679230234390154084199848209410108657083432286355730545078652591951721712519962505875849403106103957034249577106754246873102968650002867135022007029630770176768136697394727441695618152728384594272908620209823563938989323840087194332897298672231792418856367528194851366247261986560661573646381184128649358817350620614466530440386680246126613495239566281736446910108399661824417005504850600831445140452171670279661380215134802321844829413697667691681506527246024654359120085510361884284447451480355408968783472658600863560503852137615300483034254648693689180656821977924422164402640477816289293223025208626679560022652402859785611537285184348127322193101807127843694566502387688147440287040752847735903658635946574219070294686904872126242361638124338989238929350398191904485023480433712237737865204973975956471460119433159145767635968573924549089357613187936634561582887035765486389833494601286430848092060503052211097479792802745851622141242969012090269820525870408289910135807892006883324137887261398359288751478340072684743568570272460863248504300525180654948524898753300316340166992722706208587903653359942789831777450987007460278814599209836500495565980965201461549208217202862129891839037905350337521668372453898750935961645829676426039263515161963055096245621310643170221990326428179200873498491266247747122461569620383744349237567091135889147730637509047247499839927102488704350015127538064811216894677856942958499488246444691814649296591044423577425137584453958996464674550663361419456496627445290522373293277858946660925706213684561045026122584068906642502860947805345330000071743717895113850629055460339530565374508845301539215533462574687082245508299982816237259057032836373594189057794495531989912214831889531355690982167626115677278970932091872798695796209205991313492125434885695347548189284030902985975705118625115005854050748200297665986743885999702169585893730688972240368018863175540974882013805485482097089988965972673813898198167284832145128894606155225515110200714479226643344093789044788485003659520406130269655458494696246211005666584629199870990250466161739340175082264547425925521858418918614772817026870401669605460377417072736647620996377038591299524174916955921008986174301599919615357431017327725470631294024072109930893386679054234609180072405058899179897602919907405752478758621946099535772511175387549753137881888241891197222650486259897607389010867889134811492095754923533437208992449639894269596781456465520346189109603292755782199348348873807949224664963032306446234036554586004883600063766895973802321459618479835518410167200470334116410840074641536909119957795289624293495579258552490737926544599952873526540385071810553484211496377016790791526667458018444087658659946569708831420749797464010512634511341767172180459871672139889504991756054637989982387876172126380182219775946368111357699234928885594836909734091652798108983233250226566419975850033435479938955950295808143425109710431576642542064936509609428139876288911879742299947393585979585715478946728983873718318864026420199750998952884911046310191314810770009645652704951628918990832057022836580309176850271607710761910674791670795183947829279044127406715508344623795793590395791305955039313267219059234325592313976530484668995077947020291888913482541609159809550200152614941541719016742833999233622926827186029163361012273348563282791162011877853823707967190061803315274485004941809716424190649749513093191793281815183811605532178237345727128065854135552129724497561341077407844898914760077481982833131425534225582161846107213100882035071952983399608443876962299804775888487676744220049695195609343747577987823333868583308217613068197967861435209989677540015448262406251302837531829095793978706399519204094250471036939883433581204934499026613574248327003304317975046821259475559420105166752143066575524602084748061270439623111008787726083837878675920727465404003804986488103191610999704142917036302026018772640260667293910646891400849920558248159850054013776024944789769488868695591555604123055219165967061767879571144905264443408636877897926876890104298341523603585401835904758854754591518938405328748948936192194558930263880506852937598042517232457395254834140284967611206273882420612518877540440888080074666699899479224737623550015261251075015466674113083443205674201813088671853687480420429470773565520310016859431967563804157388506057889170757005802377222702657474384270314736704083522537484916765608213506677968800866809761786152961809290995159553816446649190126750215448461235887190843342154685113825368595209128870917948174731385368117335316596181095456600487588472228412908455121288424743947604525001554491459227188547889119595913138096810130488839071045597215813535845657833732011696519366663617928309804890561960491031055533432729205356946521832876881280081522614105076351553923840037343239063623192884375777347902079753703979901392763714466642861161203566333890576892964956635029594894305994414143597745597808781796531294321232131472326660131172218834358170848701012492140121796771300441400635804289208716087446846436278949423791069728837929275852553449035062862332641791759974889805921475915011620847377218662415389966831218142681071173585971043316484712367083750852853047079300878791595197863441684765997267901674672416096399278273878471359115097504714257869220716029436835096815764174240867548046865020424440340370316730912992887199417342090096082202491256521208798617658514879831606262882253062764680456777582134915753739996950728382077049417403988824830951719142973471470587688320861957377160434840974404399980494516104305259306769948045085825133505753509020907644105092965233110218466076962223253937801098428954466110524729527132653922638853160447446141336707563414487843603450912423420533069793480642610086844982200036897860013909073683751476446963100701531782444148260037993607370216885087809041330559588640625045284224278639977612305605805358897685264424329849115791896852536477694348455898296416547384105510061323074476994444773389055326657280507757185675787798556864713774232233614836249265169896030693160775241592460229933069149761452798531691503458046030468510421514544275240415256905081183251743481615482991919955660948125519044418245193365392873169119592919902198653835037826628552977388757010897270654167550077527037396008747958535767856321016254762384305481107983146410520002668610597693475601560434365922897873598549091440980753499915538061220971008859870522355353699164919663837381988176793670978453728724760925040033276130094998717934591166609450544262778026222953294338469063754362399161142270908790797134109421596150238992697295060595778563417424081940096116609910291811085109936378083395938087258948830269931948725925055915617830775847179090128320428213783130878241324994556856127806530656447387743629773133057922407796667563732111594890091899873518775225950827892428333966852887999516828532402853254286865326363846735153674927875596603445714430937144687374556356936247049389699738573609089824605496551330196807107170481501452349589522868219003880227412809146340180091218913264791962803086194187691571775557276718697517378545789141622998383160856351885260479071151601066829068109805229697007766122896170305896737672091568893590956740489527157571830887472167499217324705996611584793766666816433704290834264470545680740728589620862208478228603283660422739572411546856969324633036529726291104900225265330370417654414064830662250139037973001422909210228862389704129999599825203097385872560683424376385358624553552590074216026359024104567750272467413880447276129623896449144607521489584244391684463196022692826331090882279089953119951060832540349118764573041834100259151718702991908332328191175401401878172335177843985419925621179202989353477938276972176239086069281473822851436413416328103029337914771893806977831271659893601162883045241916324166483448689476326391317461461420948585210579255940271954016455629614270726402927757435608879719240197859877586039242175583919440297558105967152638618292361630376700082570094497607321401431294133496910956202425651859697705337863678562476729409986257772843135808757215892247959664499646686670630261458195854665732703124566398787367985863862739140446721578100293520789042162606466829020607059764447497361875780904326373790109135848607968270771853843281905423134475775785561377205678161392533757769716577761146189016047589123949133941416391516627828019480768398083474898578338818027464342849036002245368244635981330292563722020497747768570507736094681055372532863689831418277600131146771053955472178408738787127999941577919371387245977267371472716761930776105244496278668229462109193690505836296994581290266951612820049393095184696799954345781330988060734569713096109048104549199734253128137957612230340480432407939175850634943457638643111294147356425797697745575781827693106300140624117468919190404958398177886271830174561887077869293387016243444089063650357361819111718082534145667308104638384050721059428729339069372931385108527319823828385644363402359564569758291924325639130450073359636531683482508757771205411957642307616197002167581343124762219191270692195947837333073075903983079620787337295284947029646749790012284425582660325008534205491971754614958312962565214036757202533240780167610568724589845949673950959533786672143588885324081187135746411086214225069322865817755361701655111538085911476791488909866170864419393147211152369288166939023385005323841550511573456807312748116205878355412678322973775332086846268129359762375741663528511369271319631716626728551965095651169033839555658250021457975392958880517791434489685080448155941272587140314137987446808234451986727755804891556768974823785678373008497722283242412092550096755445816961971640342875537658867593893383921699819355025669524572222011816432175743641619890370275940224842761935171362388809188147634843456091189129579215404864706022186147402907118380137317514890791679939354693109113862879485115273127434579929082562382593433055121984345392000751852663531522188094978787278522951012048621535154157545544182742539419522914230789423863743681294354728579356099038470707614277953066235756859235106700456032369993085290450135211072882417756762865106361034721261974349979007585962583100440719141604001670169125122583686523992949814650897780847272717156507773972672467774984623397744241135121717302656157628310971513613754077062428485817559648831955061092499792863989085819369718967017348085503434362818463784259720191470010233680308901884325793861282280388016876241395838275817003938068617203678842444911374018162848116140803688529819295181038086451047450526666022183435671232724963054975917619059221480178482563023560402336860363321755534515680952796680624739403958748170176787983286421451094666490828528109802471073635988021575256922026174651242310215984190018532710714767113098077128569938136412848115468294242178507010673434778498917786662454887265429225347870621968759903429061541600155013796331340192039720284806654364277518484698781619215940812506267927050191919815785400310905292322843221995349793037677508970530430557852097622506158437709169142961291697001665142262646291259898648605125443524536404466024420214244660045056332165678893379469832476079880114154785883204659677766831537091230850557073196584319201026964612774172198057228710091881535664040876784052001831877753688249180885767937257700525072126103841030743060032030298987071976299249266099077084981474802368923553133613611033419503080309303432586088308395356264839174945796999821035266603526471810260658138197561734721561240943849459552432293263056284751892624341732255021903385866496189206814594096103466166954202239331666582441308633360862595557080755683859255788071242245663362406395825255492522818589358379425628794364655751610557372202669501867245768204952779826709264161840087104563609171758413799300251153424920497508011072281800283439637997510402236107076262127753155055965558617859678803992730193742021373255392349053620324364778917508186531813010226569715536351995094210991302895531249176645992298117703777149269090824880151760980591359810348587911277428974284683821023427885809187154412147466637702861896715952717587027230543387351455353252398170603825918009657561764959690957402898944977528251058436326590946095500863747845087142579328125027718642442560190179976262605268214380452117377015434933454647805349607709206791718695804643356279972421694594212434284701556782420944986853110034360800591288974574901290670692715193764595895440076054865963741826167428324519040121155976911355538062844737164325692922558031025169957600696595170993489269921473320435078183839099637712145222768567765361614933956444456890791514042756024715022909268554355582034555718436373864032424509323749244564075973035450080105871965962469631354646285741069369735170423190430613795715441357526822291533265527202512589116890298700916367899060795735930137719977831763942023448625345403539474629284884812952236311146653195834279492811259551274195001367664983732202265108650351124160095419572705795884923265742818745161099043163761311824475479352148989149549021835709891408217908764878867324925659765770433294917835177937347551399991551196456247692712708684655464823167046039467481233573573397780641635461441872564008048937043522641780193689005753420886756394705316274651528305079140144551733962924870793764358120848351048704531092869192337670163359200569450016813566508177819816444120586052725050481120960375822741740931640595891674392735629806959341027944031436973752814923851155194345611108667958731910662569817457820805194386386197126524251477665878168595733677753663743448660024304688755795189263780666385742243005218807176873780499193264852006069800673123350698596133985036802953048147250696072312972944454795066340765245788079747694447706535237459307587910567570861710893813811306338390729216119539211224724616225755457076615501404331888351509602506125725351555126162020603009831665589357060912983191549094261248176015346317164353907338925288066470580017034541367875148356470658281109428323321088056974318381034193568066211392490889217468904163624583644938750050865383234021407125104628159985157421985976781019325150554452117914502141817094950278003611679391897683366633198308682763362774939959844016032985256109420535619448345218999861196078716269371724762072101346503152815349170999422228635587040340876896937892468444320776218501865377356730164605553734627260264331657632988418523475080525494591069701429672188316671603811867258124293733185370492547404355401572956358072277719305962952491095854268831578761718439154319541329158760854853398537304873520874994443112905039103304086460815540448084923442234047571015995768465779204093796935687156630108981584731638658330403107169513344991724291265500751421707622552987714093008100465015689331377875646486123314110406168272781075591378769980034970175087865971003796016160104922395672837614781883056955506608891991178306317734099528879298707785558818871786975053539546527248912603150085385151135523662055556287589620043064707532675576811292995008281051996438445050088291442019620137823405151298883260580155279888827537561566566209077281985589190949995877534820018202406185462060016112980688680551608322746986761829019699499812094666084179408532610811526677892524849048400579373279566500659241407553930436987340696427263299465441647193685007458544203111307859945237112860904140937392212421779852601757070148740598789383513400340044746195054295632482291970614042984968243538938416232398132915487185442345823322254232396669667294525099959243962190582950461791908484398362694177405002214232386899196707952180478812872100314936433666170662893931177136096238270118907447584254957505015333444081584156575222539354007584630130896471289023454992709635652631019409394148031768005069562296503887109244203730300376709612803997612066847468530288612603549612364322165505227539241799159383566866244115363387321507374146212739097166954421754283368927379374540646547944118591421220393652355585015627029328793674790995853017028641435549848367466612304087069688289654686508502758296602436186376879480716227914874381419857726851962534252249595815673194119482010019123756132829684110334140776131803506254896944319230791016782770063137054730049355490635204452687233551357331075659125432699356098118351916876767449836883257212795604374042943146331156781225243594854675175885908199954951250676921868247571944853399068904597731803688053319759975948411036129033795373190949298775474952514771580266894754910263226200919062459458476916189827095890379324147993593439711044348891505617931881859647922978207643493236550035316597386783201637309399187692303399918087242704431157080490718914740624435668871483679312292456310479652406769261666608385783078578055021264174336171169330318684166958007670498501976636560369262340904791000089657235225894133174250166251219426152251601441723271758537977414256237811708868894485476534026779767016654796066933117430226893441422451645708259338499716455814768353355297023385031536058536177093548101532612058594651809224693672861040066274375622025910157548935256328971172072685055852838719598648707177121590398633561095361765940790774101537045290228189900457893537801289134117951283241861618080439027090647446780582978507397507016558211592380071041768141316955018631022825795273279696365376951987476988284362979925039535684652311193663466176860933676790193772949386556092691340270485477251957317682958595307026011391572633791114911289681846103393355564788723180813023015825680588056222352439365940187429143143214181901677896528081423522485698508527815050758290654229315192370816106859239031950916427893546438676231389548635676676466343585618758486036522154350485403624220061320763300945053548849869948853664173307747984259676816923348770478544649410062002714696322554522627407783661521696393927170646273746455425493394054365209450702268878064212405052310664129594783750235779780283293413086694344727479745320321404208372774373037756646800834235615607433269973389878320267390871993769138476387261372209181934540531215103144565874620629940391200447796161455460197902734714826720794283524607278383230871220263901600533905453522682152778297515316009615732735087316153901217951650458285094409854980728874133639703556358453739507324128640657805855374672964230013036266463859918806423849572293614658052739807995744958080906646185464905279243123026142041921158543105285081238141855509983625005972975614779746352753961153331710524809136873763517441654001284433277453026239860531857167176736339720672469653969820750189431929692035819636003630626206566625827073819566746574324778474490326062144335246275554956593812049570481614558505546279688458614141036889123825663345357068918807757212354060002276024177812930719845009974568761145689076223271910919787438341306000504182680898615083823622047639825490242482553024362885303336163198751322480724702986639544495108606947057853234996657669255924977187409926835830581404218454403040245354955546870817193715551754594639410360413053069457774339932871747749456645635935651896515000549021079025408723935898153320322924860318015693776735490789116595984795041110777321214902875714421551887979484672910442677666905247861131312099652385412950331274179309911581549367246133378543473456290478896600568691090793062012750084599191381517037424103435872470595883173866376295770172884025699398818098770246331578114730169540348019879134817260622033604693525860196905057625900270417639194781587345590684458664674569638576724304472321664145859826491781326297884568840247423294048114307403310838784193460329324656801129869387480387334086377894827277850691484544362454432500680663582858827459477243765514153961529135586273804007180187758198031449148997263333823105393686318952376719161095178600153684768980948981805315713070769793435666406370514498412275021497243634359353540274255833572280246378882324460870729834997709306922446192261860982901391610297038610564079261313372428498417044609243336467337095656146903820178075850884572513748230647534100740730987736734270932962648186784458992044032450425996292879567435730946702323954332879273043046510022289183538439668935547210809999497762084492480231632632884032227979164185366236621892484361615997702909533936953218315334545385831108664747436879056789496915445415961725952294281354196349537848051031329131362707277970646097585633331758388595758554022542142618325316676577008499098314105262465804467785797038707276056846936323991676102860499900026235137502384585688787284333406033838473319261721738875099900340117997454680898325993657591809077752451373114473558463065691405271293975080225018338892827950643131468217664492630794541837744437343099543257602594086331605569979235194262594831509282966522970696785255046439387573690394080632461332161927651299215136737858662805493397821907306959848461498106386473821382108291992633504458174057153574328133153045006340160077330772036105915340759947070856774678136922893452785202260365953726761724587224841954265772915027444549706206163256095103079508544672505249774817667511962437811496740415867301007009472185582481437229707126280639577813929279901950014806839972402062145637054688441548542334987955057355182118637746180401082809117441297751409839634845816772692304125431522545096011489404925266559594488412672221551168177301619108000858314161113075376746839328405740357617421501473029529735953757228253570807929779718960714188718751675598753231775689399157056452850857742191635419105730969956184855212022254930109651264420862820563225666479169237245226057136798999237002712809805267190263538584125344248740625902482039222796611130756796815038050253945394268323599608198739544671716275343236978465532924883834163632428205984735970738600517817691425046165041000912218164155220689760051832194886050207816686362619720331323307998720022007506873655113853705983209616682210734056692282898106252553769613996894240146069447723988050132895402170521154971708416972732638464999351658393263988644066786879358244339201696483320616198669507636732023162100157388133860482234750919934568565316814063516730964730754230213376239463000281740196581792226850302085762490420793935811583251663790055035247583424440481396304615184380946539036219533247949353335249860388395844037566082992974896257531855131265929301104984378659144270803483853581298283222003193686393652236392418798153182854169101935000360806190177277654777426690654863797486369898048701486214064867484298462308211897323899712933819439959265645342296343484439267546631785755331994588225274956964239426139171923098096189472762122853106294966627360199734746958712747845303461836953754731000492561837714139134706524272481212106234333140710170276832853727973668127539743756584782019317949532575398842010477584513688971727883880022730968727403227340795886803531390019225249519667941867557145370374448709522187056601772600737385773920485139451033491318548899460661413558201294882114614049722844124749513935104737584480495791623593514096908262038786077926939499250436538368560814617675449255712693418949786017816347682545941620196233068996708476103881733824596854640984262277311422434804255965070702144312925170862159578049521874041906638551729530865465110223810056763148447215981753060790247774592122858367746231354601038577475601891316629793749950149057160015754990643259750746316757985648850522134727717486409762404716644834712539741739270649365755541653949248970570807860856633686450242122407744015807505479891683588535458742348549777414701997894506590343985039122657922617686829172128778608001340199259343997389146483786687520841132499230628420994687583526517885237633531753785477887444274343557204374848683332829269665450350862524701134824956114425770397083121192627794397506018054388242081840032214884421146136604522511788301345690588254127390340470142934294257835801211756086246518272627017980710880655575965267831016194425005104326808400192281372807713966517783366315427263561798071565996319468024181564452804773667935294750842416239883277857836653599263596577576256906050683320828153992186039729736597837999738946908712945063549623171643022272009454662702904721522966855306815957837422283045441784978941333870100225693798200501132617357431637541161996368891808638680454383826292582586310070054938314263527195325513380048991544365859201799245605700684022484815206072632471687242410143876179466651756479274285807600526115563245378769172185158409125698032020372857389013441871221743192090397697757217230738575284830755691262454675560908589117308450758134267253563103520038708125082619893686791104951782532690065077166614085340169763246349342359820922982020600984361105647140909108513287350323569267616882780360911934562802853481685115011970439364292984258919349898729482654247104903568314083780661366869629386034064206662766877117578420076763296048367326075003449888500422756090037863463483037950654693740198352483847356372103431602978663832859407583769857336833764712476507694180935772460069652623186311758255281793057199074437157121452586006391267589629328549566431953838687950873447061767060673575239839358666813196977377416567694457848579229613687054024094503343782702498183337625370315864399388894696925214251533080501644842505950000425599173765880684024261355088532684775295706413572076517654116225347623179347930396464834673972887674782853279758748513062524247675479795751860468270069481407866166930130333254142108130615701388179917226709932506421808589025933553704715084750672005612362450665227099510526991385853601527383492729105043590460400627554824472939921802498952980471390543835169348783176054568854561978932075183609672753245873252489938633403936734248798962054744661982481024697512439140042145711628012595449011473887107258288468549073803231706163910060564038601317514100667170324718759873028880651218144083709777624338794745974068463608546129081340295380626652821959542775010814176366504107496237620002431364953872290479147766270490561988994292728375131206788785913780418486257008011394855366537124394483908965889619263993419709962124811903379941526582578312664142749999066747027546182471267396608462207864531765634681897633263106881036660206874510991748220056573304412482335005228226911041894783501552683873748434563505029581141167271569497017012971993268669174015148095803500506235304403343388872300319629060460814842964753910697480931601424323676515098268522019425835705217774323743675804453980245209112379311769671772547829772939209138151591668885654825769369877288285559308088458885076313406899470125923887612885596887949691713145988950328021406847714772616382764458823269999303207179292816169501578901399764887202336989642415771867187059879000003372257101765944516956307574688363722556839198028755588210922381724521461531749046939001563178185607667745161180468812890071969346132148120948546255808255827249770414993821752369598098527487980884966334839307461000111681802494119104051573943936106055969829262664974126832730124105197150286318853139692849590828617151396054227058692218258268844001081135770858172113975485765715414525107825227990849896117743336528571056794014739710953036625642233809145635738441951255778021886144133102608931851968510901042841965563149358899668229473382660174655855130527124178167185513983925549120716267686194166422448127939368896289275009356934868029082606631712576193615652380531350482136494924540028820307638439248851607612260190710157053842676519788008118980721503608076534858691070113557588434480746602941303186553078692669103063308135299028912711968717209532851444816417608719112129742757025067288095465840063658766931805973585525862155491338708444788444930515261216554072027523576181137846467269380101812752094053923967869799039086254395006780898646646106421284890624772746326454081552097313939223739498718617000592740627107028871593306663109527393985534790269492840285441819060121429020958874024184256103011757502058220215909684396112824035563865661592338471034324160549919466273151284476604181011891241110122973634023378002214515587922594968942168004813980611879698312911868313391107039795690022863165550010364990936328071733299484917321984753174609310730183137458554199364353928581587093671427246203954256884834922922081163793386594984553254973474298676228997555869200465708400645274429306847115763170436916948993500257169865825519476633777648221003748755347981771749012041472061008932912639554304026680428968913237735884345365658952747891885719669340163719115922359107132269978773916596510671754773586268085292554263786087297653347527980332175143003709823903318425493179861048897448388487492093625054168335158584927636112990850374963664702966821272608276733490350739262190387274922273497370579159277939323182717597144599168897565513963988338202427549255039319290914513473520506363751043912930908240481442910673104305901337853943661573342675332396784187820062999719286873237425767110545012738656618008289297357597064908635216810684577368573668102993510858841127860644981069554096184532268076086318153719086452231280913505860830825527397353416372139535483060812027911306809226041605042064433340760157607719684907058388398059262521549307301581029599388805693155095788388978419853910753764164229331447591055964832589443340311222896896137167812709610407453852322797467580835347277340500986143634518369895397026776619945714523526866086640762499706504518722541209140348370260634640096965779258943065141535015393229132263898477921836337880530847076789740604360967943217018160002854201318759779007847457304801839971849126434667150793076470761062463190812986991977600826319719544131290691108826883917943888772083846941807884358489359806537620248813947311021071314205746296195602029938189588685974820815728844787519059952627024705340880121899849964379460218715911231574181015622411117161861097951782934179871775802755280775675118970687624604101360452499691875206722215280854251369965027473425459440075968580339122100044374299233715298178773163311837780084305180674846195355948399418573084759620121166683440549522112422759321500280374655883705982368081284779457172766480327038259803422383444250894473324189240379845802742747055972585276015258622541516357271874664178376184313619301527162828568328098402392304855332555153517313525131623849806428664501627709630637943296647559756220800212508324901854072543326618320720821085732490685684979187411064818813958487203975306696155188088873820756331933992060940960780880318970720522178124690722607987659034674413066563797632773266380372363246498247721953206837377329584805729995044267685400551091348586612792295205365418646351044596248908469815363675334174511897124253815537210326012233298454188424583421619632293796129282940307336777070464816835026706307632448214838351666451269115331226353331391517577186886063388075586487161754824627628255930481664914351147933429642992962597182154765771660779987135737424958009853723045005233734668218766278990272036850763887470548462251943930853467417314422361620782019205030005752864110086808895131083148254703117811061813463402602555951430873116087284291323138977437501877926391090311294314709224714434801537017282104555189771155551991560770877774105951208284279971896847506114093318510609090470281948325804902325767464230528976607930124798006131920571072769541113952527366079263032277375970720397951096254141870763674460527591346811404678851558956445826180282511764372708703545695108620477180151057455068487365455529632800775907121668028026391931855201513192222244460646497937626471419585932418571559992851687576965409846389466733742689565984664500795984623143641849317427000899129824156553860062778089084582808537844289852791560811499257457989053818853998405845150847408337652851255584116139270063331486241759375176246053910005753069180048434401251009037632411317127968280186182333400287240446621342588175077163419554408041048690073377263728744018354182376166035344264934196667234167823642548667991443898518828784613465051915311890688296806569271839481595024545159404278246466767026395437730746079726146485242200855828469478234980972527468543040047218670938159295930234255497781777273438317631707807887741352996951054476089617863132858734180520971490874811476258681755027673842339715128028390453240946109158143793076642425729417087833512146094937842668140189298800516002729724109257080818161182101401172869432429464939841915744130522570326294514963314884236850628669446928574600696302302597557195589191707804279452104779690683668520102596595845976226613438480168829048228756704883096826706050994880162409100586676507982432415755432181273784201260660637234623987297984736064306749745986433666838422901497403206724685302431941153987424507433108179413850547571604333028171820702608655015621438702917655371085845108755085688758591560061075259338268715246374806071343137362013861559501963624241542000760181437795256932542532705503098858658342718308611986520027670773283568682325034949214459998923152716490603100243905344013358370747006907022611912256302230822317177222189646475734477026928776095287617412105425473806718547051132862096980289787762049547467771139132288475370171724483958430229356312865653281488936710975081210164265599913033181386339684010634528347811971683015768724483128269027517670537790482856945898812625950576319752609413579562332315469379990908662149426218791196892516016028682743640981072726662681453086910124663841780559844864110442272385429450996912731371030295823567012645819425515158587611735381639748066451408143044319840868862184536162595183521477411011284203468995376570444965295635999844992845358642714760066478391915789510269071062205550036969378586145171269440275805773699198342468628271533572302208915246725595738966167745989290801177082552387064996180118545721660511340310830015365578166190741742689172457707939958407643033492653050078197996780115450399440988554253630195529321183476320255430259193006994198711245096753486129496342733651737641360659862032110884589512446993170517359000907660788393048951444947334056772074437926094156796369367903138578802995578614464862973939502161226895516797329032352406275998366988214133006850013457527011534133822295106189296259625556052728860957146697146431250490827873003315250136212827465101533450537108923669250916935987708629019715131297659366164338293232062216039192656351735907254370439377809946982336656414093064997161129560237458260254612579140763270371937200353089742234922728348143167827494648685133295812692806700322846570993345995508757749097875733744669002976196066376854788728314342469242251435609364123755613359514225873414206260508837325281594483123170485939086896727530435767215804542563260179072998279416604413331056822984931460505491476872981602285959002011665120490810290361548390014633915925541867348980545329582561097193444224700784699807388728591915148082741208909750898969971009849391291042875436319872110122917729057821952880361018295433427037605709359975849927415770918032077613716925073167050976208441795585389012260427299559470700397202948936822603219039055683116187375653977543944193275047967501086046848231437113485086809240725030876999492745360892045839882528958243010902645550459398484579061762647638622155445984644369150803303186296984445489018624839241606040223670764415342992795198185688947475420167692668300034780530491823898623927408676560239744638017924840187165753830044963723498003326249266234809499770489040769338915920627504977532635488562730357108767590084673703694585354931348358069781892214404494492565962400852008936472303067394117372647145511432357245249519161167777962851868958846153970079025741926078694443051760801313466156359878078119996968831603618687043943388276432975518495022664117238825613027182165055202401389103923847766825164928131034795095039517865617873366719606282061877366321552385660712097765886031270215651634386713549380925175407517935797444181032579068873339605541969425152959198087700337009225512121034154293337038837144347575536198808134690458803576008643739325390665824560992806654338011500795971154138405776372234511001253152244000603936834188652448948555784202929533049653589127611310314203815890802668527580416603984717601874229557389300301657209995742656822290213996103622582380780172999549350338411460799697691958761775183119519531859597434709686138379246702587089836340995348672767529658681442985556855834923035410260548043752336187409382003881124934277979282026373778515254401178172306527887330394653351139199419049879887222572247238691903894071370798212878085382442506508885783937176233576823672931040260637324219074835619246366586621239749512868865687424843633716928638759047421402047820097255416567395027597673093358777368878228215160226400450998904884173183959411498481171576002370103663979635970017786919202117485808671830148890132117644940648004631272098097789703182578671627381152866531428551987743938458958467462518275292741477415043598867635501357996160952320564490294725635170253425615293725727165531978788494799714531079745632834430489098448235668266672932472135971653128496046173086464802807639221884049477067356550095022854800619745453508219681363957525753695274608281792713953430676312166801865815144373365200302451174587576240489493135623030160527043337248162234523323390390845139472513672363016673321213150981232372541999257625459279558712247722146340890019188809263955497489796693251594261954865113167525225637839684810322601593460452492137734220445217929930480200302332103501371934399504266341626331064351041754110208028559768289760609152132837838628303058810610012291855465723160879421335779390963191865275025009865546707339537850621715772761198906582703049274682023196799313378178738628428995573009453661978246504006503839546745855256925741454768454464299929621384222734651923044132095758707869374860419224606711303221945474863015280503419870484165991078393808686193099659321450252337370304594730269034643503178767313099795661062475713490953513525010507726291561426482556091755356716396361887386940260821548939519656134879173781924384328793771558735050476626759145534248174121229617463888427745204249231531159126781163700307126446723380575047829089270862863113570612116381151257782121163206703257677468679068603937162147910688640167033248140631303482126451097475444415276890842916516112765209565938453332644278366757610534384179808833382168295334393574189298542315709184714896455538077105039721996314378210167691542727130599724799145784701504878142787773458963258225272421144848935519336411910189579602607593263110252453307206263535032535747093438156511491474485384301811962294819572018909489602152101650733978881004075195184851811730497068008777523881202480768019728496175063505407880824567825487151933382207912366146527489572806122656723155942636290250347844777239146193401790055639992919579898301184268515630321795309162064276520414000029559551691850222233308861837100408056539573211544412722285898291246183691488007010545352949547408357796616481124039645305749618763187864444318458567250908952361376726965517881768628181851513984073197905627433057151805585874616280474885488216837466006207359019146624804160351413573194092667256393141163482449715870878225763216559051494622357204443040910798834745093196043957776647592942910658749738098253222262491164784926429400228873427003276589903945480120645006237182008230330573996353198654615635028347478903451443304359986042704952334801191905737593411294942414203519650950700160790243005683319246846712228096825807313717233977027812727102828139468624861349933167837221459086861102582549370865801547099779013313579248812021137442116374163392664894002601327269284052578136187502781057218472547073623226627147062141068702702243955785562808167691370897575899823126483892587363805558649558552131680412006474251362206023398873399215088436821743316551316989975430204900690211947849672480435173910141392754573344153898616393475345372758548354663622747622488632523198628701123132838042604007565593317548418720174524223767118717267080403675994751197602060068157943399747262811634031278159424919489866730057457440888107202494320156961926545686839693227952906946092616411820933197703812506535833173707703049390924850730262894100300848213176004930077729213383317770021489505067846973240359675155722206737529699320286048344046168986100681319862905398896194146511001562218466392437544004909359896926836151336614926983642969613329099705116104410356680887670609736212596762557848755867242622513926444570103960420174350532444143613995881391668694094395468172009071075418887458667314811765731751517291018905427205659266271678111869119756536469076685782832357406609599800612578857579528104386291561017669856781302040192772936137922057961958852741621774867380782861222380920419700728231822598813891895568430816300728623400346817861732585111412999297568059468509691615783759836150891230375478323782362458672702497658032575821937405135998742683385456107705912321931970977625857024904490693221889926512953275247497030049031413861381541109395906381746975467457295988186011527691519006190485316392810303749126798801992203520871581492089376237200866287649461730459467276832224522324046286794918870603561050557897922393609436884335345108934862842287243854402749667813229356795365412587775435737464986321989236037913239193198399423083657003543771063471778958584468075953845846486256725048985031658820579838448021929235853639887027530691743954239310862980530898536793826329787976939101607680605941769900860261436959792680424949626204535981746825107098843068648969074213922850707572772252095249265067733362196224386988044628620740696548201552585881534476321511015092170718147981688153614070211847364078187228365175425804417384305600053173120691515602248880997870050191167683711624139959631352738198614845940628771236047307735987252162741900786246730804933309923123496808250695012213542742387639105177173660739242462395989400486101232609930255187740524818479418822911596982462366200847573322992172117420528986239695912296797148700559116427443092108402914843661525497163824670911546292983629899167408983339199405397684449421658051868393954697163175851214556882751740530297226620490635393829580730005858615245994599525491738952863646856134929318175279396573855026903722756644392021312230651496272478549480586194437765356466345843971043974594771717046362318579086876727417575706602262200087713148185303596418425893762460293216982690184024442181456445316341186053822443783683145120746218590957311551859828170994964187901349535971753507333083862317229434654162456569175336394652568170845851422892093490279585916845299618005089806055070568072276598471674443398699429167577921211635405542834895923942909473957603858014381188386620198128052067798999806762997853017198274820759417580314445151090002758781289071586488191962319792034067544310293429475321508706194641317045617418855543699515146547933991553988838425419679800385434510291912352283165362398472157506852989338547226983388932865082352589910418347960643698452514307960238806772749708845441127859603805761059636332055933802511761096905593779716124085990595388919321693366973968520846354955803201083686248009950721999709881778399503232804564552339947302288138042300991780802757971450083600296486872988457076729842733186684386528857691975646468408508420886771129695920458930593624573207177014673182396026707602780059775446604393439592737448398263562266902351101060418249777817993684286399740879734687550220955282915971482046636099542535078459772290060624368787384117515087525502325140353346222746430066153413900556001066479629617230003355938240546639698872357160583219836225133875269611886583659349481143986186295472930533839160145169229576957502613404249553940654883386867854413374618375754066834951531450411457302518650997220122609507167890160338156172158337202537545251328645783564724576345523920483848188389808114592273943724475299666190518057023294380250949428992316343990068499453339653547722244356370107666062428722781705464433894948213065859679236194645623163606127837538430758460415193627127292867304638211318987073197538589129687353723066991174759168641713338194708498510452329566855664958933282034007012612128870358744599224889017922474401470826528310870165455793317064541986335050569109258909601085016006106775337121755988192223556709991857553463074038449897070356886146772745308767938425800590311628595369772689574753488121703687194198211429071335123939978828537532963906926950201862312172832222960647804309674392351511371727099279941016469457181060955702411870361396427459734432459673221330802964074053176545255701341705270158276525709925669914653263566656228457792964469597939733851696759105763568478778429487049764814326785289805418097979805963232825184221081789017864382922193639757475987323617667815008806732680296710309335628902627419237223608419725318709545152757577527296508274688711801673157220642465159631048532694437690076127650629913229304036160076755945304431582265416105706853387455537562082339264753677569915600643016508743829614388968589057200587692386013778951746762329426687256434108968259608582979990863985803461230697083131678717846083168575839209810179869226735899251966665759400501638351348384899213268325167604791395237281927487764175982215003660628698161267696612631066305026015952180208322615825709544476776106825504482465016000233652336009234319317488223093946360582097959324005084598233037002688163423811003597207635997691693362021656405614619017354392239081752682150897848510772908571174169149693864985069720418255033560921492195143671663428707647797264589374839976243895772374706208619252099095217538034161333353116608805465368052673692819902685759469516014535279930451293964005305187442488195212155933437774743932576428389575355994758088810569073776380370169819359152258992030966075691067020059063704592607762703822440933799605410527433840612997226848440080721477973067567280814433005827289467926998655766578738250094585209291256953345344172207824065450085627236076276046384033473610487003922915935886111933746120134172419496311605984777196294503447842414846877200947722956903916541657649472687857158492831196024966692505933406799827633628150656246427102782118978725785898443431978521710964923573509363118819711813612841283158184132303805178671777628878637442287037934021606424046794177772544670308409918564274482583737400117360973253987841832642246583941328151705168095763433014044887716053000409865940060737591542869948826756101175490316927630596242569772036142388136478979564242316130646832214833661640525607694226130148286755240275040073604194910129929703167268477588037699319326901357563896555453364388570440220349745448055975524812387363731734661341869051190521778476442391039779122100285691601910351089240124832559803699167394250747418484285386549672501012006363592471633593298277048506653992539196024871508447620063363023801412745260118376019622454941540332983119415133908846783035015590820063141105649435660018390433090926317687947366965891696395186709423775324136440763448509176413613436297020924770319476000565616624750419333296776848550287759449561722579103250300013154845138694226259466773563069796463678080658866098492970177754509293499994139243802523434133787479239401550555614244066230696736295349882505738064788986965358051062849832313050830643721851662123606596790672168434045313723967516887961785756941504082311273674991490109930301141147814204304009911556473991873890023527309908832455117981875713605846586774647440918309222341590886481736762061950021803862962248540003635121648735799153865548240094316623193832316630533882326565859389642119201861791361377367680122032879980691972437277778234310417564891046892842112737830754412445929196545150823623879092139079112780370688141933010834858541267697217815971180065639982265835151443929042209647127215930372789354088152861804393371411466200329416916843251921782707161858949631437708223557282315873846821366700465420724106585863448349386357604518787046374208852743710552192052202541997456907269614373051491150326900588125708845363194822795826739108281695546973997157908264825536028967378835807132793172667045010738956601635204674529700767102484924432023679104809844183085333909031359131087586121228744679844963482772724231203419426179619537442812388529090885993520977021667496184132513937418562365357970707015783712398698374805729997648794061609345642564864762635842099624082046314502088643278582226679666743977449036771976373607073714418727433847394402435735577457053706260770357200072055942187436952625336983211723182728909033937381753597285684908552896307277071306136520362754143093982427330117405110434906753507843827129727665182218676783250854744632998296568751481935159564288965479863067621488604955298477529956962470525563337089255231653015584860062150805200966110368606915117269047958340123833971187487162870765098879653339860157861750445293461835312223964351096342607531892437632367805335354056256279429352109860778725132858847782631916699149873183165934867691419368550894663962843834501373850117936693514836446026041438571801294116943638814121877841654726010951404140559221684840333183698847477426144231332814428386567095594129641918155049822113104552869547235957200764273814159695961558042708939222637075676213947807832005304093083740834138786350505715075277561646073495981571184502220139367592831895224373688141924997797992239016678242200791652765272567327578560993821419494035429009589407119541302050932113976304339065213815347360373269600537871864909025298411861607897440900438813259015667068337998036503023952977319006746157963398050446794547824887821093143629889046728543107634041551834259534632251573527425967904817625047334684147827705335776293658586439866909745410136314857052823135436230811051225684789607209983486280513873030824324674020070104359292309970190135069117345833941697220311806903524428699435188434671258550109622423472925621019605053607336109841105773426384000099202852604200204468883720978265282116076840616861627842569341121150787588592710424068507455560790840150153051744611109897631821073423645629694329159407032129092005437015157709429140641135377210277109496513578105023528963159534945114949176371433681292302582708846005398533712218158169413194695637727537125364787789712442573005465612802230460226329160166524484598703176677184734231731058299631661882301124995793416697383187771110456550287817480071294638025333548934369807412794149126365132431521140269785781487756578611451767395733086919435948815194628052185631717784178303051679440825529374280572735999399692709717867050864956755944192335174612282290807382364373700639622244303249176094516609395788762959256342553605305713794370777439158612388703602695814169320624624357279283655235990770382629592501465230094351775658171630847841279157393367020322990333060838478844161064660948259990427980502323999039194593391726577970390510777626702561595164059549743567127736805732440561088734824117841831678664884035561122485273876177911618244639653052345581166212374054898386581117012040261402271087786249108652318868227251094209197517546005458432966167892124689895612829215254793635896305511633543776425727608428352377211140182890041779068261049745256281892262242542175795587688996436235087216606097923687298872095480993557487624816331187600556614069330056275188633035869360053666072616613982154486081931075306154689714395896493050276877884626429560750333124869108896733824841147040260565232665284467290887996036670631060257467847004193840813810083097746214844815423151412808275308759769647624388720378337508510783304263578044810522744649136059974462789749322558691700792674071983470176973390317422736703489541001700726084083444566196419260874951881725040504615579136779789321771792592269130632594287691624242717609430194928124019215113115068356352275784654245583144966857005378807299096650224120588195609207235198316790989302608660852071629741001931959325945943042982086039735478792138995100258345528372700642951251757008491252699827674749706141401403854246570271932561609869184813611912797456450361314194597455213248957629461926290709006737974496349630130421109109614102287549249303001771965335939075616828360467814257459692414736472258387481362068011950333333888174715880457201447020605487222751483287097657664459463789591538074117259270527046553036054162962113678598100063578103450134064080179678154833154996898020687101794689212063525128377237577909851393291720650760321932392520309711980025618403283930938959893769677654103473972566692856373107874541044255410863301405602198695903746775372551024058359344470372121188069757714224302028799275783743930810745271238290901109174605053747946230160301719227307922511805204474030733786159292498151325863033521359793868868961353304370994793005996251009167380791623783474661133408893610002617547530813902060038478886519309363919918634877098282159368180006804125155886152752214151608554751652718735661220241777080725154485296498555286764729959420147522441834464059397136463408595862305908764700954828814716615344905208840683188280102241155315361022868230946781010851651344126082975483276434497210250512449330354580385198610684354094686076452999808040548393645887912592416922862155043233965458080561511507099537428629508570111016487276724886033172842969150628989425015209624767098415700268897490304998655486125016212261628979464534943358933616727552464663556963268749061263833645412863055286901928753794997168043840820768227771061920381881552236081722328395985975160816876047438618343084532080546972598584914103319428075772505923160004145592067470398524471106659148349994522094743624340861363528010915298141954247681685884119244683775291512623738268619847589567295755001935238503315704284501929588935759027509339450663272369035458876728549709589558906179767518523385270513317665386373144009348305637987055693104282074163441654270384011570539975943574943626787145399245352415192345756877567246961860098605041150193404350463027395223737036962954489108771705766920796930390165904870369734458880564695632508860868219272228353078192959852864377749719830521299698526445438340306888272962335070431371217560259357986612184734158645978831791006867928144175457957285892556523974840570392593729298380937444039849023820715978610860465364304851590756116218239893178699756290333465648221928486949454807864531779307931326069024084541678859229949256537042072550551347828025070474514658664746200072678128265422905006883523079634126512011753960152807673080220707823420275874897008436178502289963749285986265122681035759565595368527312688551427621721113923784517353799627053994569411840154676516061074008540063037042792036392921164085667222324971442081433441461063050735563403962062447473965546206006798003072030374409354712360272655050770941273360371418580639180269719053582590639023456522696253156613532986043355212100710248549269933509488876835053849981083346034675186632457457540011872550603525196418056762848040510893483279237137107584911608946895640484908775434920674792640543679136662533534814135467766228493300833470546243543314797240791272930882754592318195388303975942201996189275153440788553311082655519569501102434790783762375472061835593022793782706833708389065767099653516248565749472391380219799542878378307225334623680091267256501358417224523391339736025536073027404388841660519109939260758549736255260277688173725731368765570522985781883832784161895580851283642556312271406353187877764661305505133202459922146592007689978873771190974409090214822791489501154077771202569081993336860713435314653993558221653506746463150452131949080539550820421234927866465219656083745687967315424633581709872117995961899904706366300818581840425409335524353839153837549111444234860380951324179240531391662151615400486702955471519240136186272786250254798199253356671920701003658837752811004490309310802091516706230374112328194526258024840671039965261202535322128941737726651255914040627071775542134687594567564902851682833061859971345501151825180563780724670035643061191070897944506670561695915107558056520927826965820196244225458499702048073015532780095329561483321553825386452925084035078427360680417343559367264692014205184660787032781159075425149903916804803147252997262382151060817976319562547360680065908916583356632130916535596525621583022119075517603393821380920248217861443474546189521424823377301167626168789346087985298649223282182726366089375696837815856718729471828750136592006905463408975107688078917174624350812726138095854767641633960232621374455931402987605451885294505395544663698215689202865438668650371101546143118237557094385087619680474661427789275881177295930109878464301124077449592997605165430385644060081161897575954281211032658634543914054305957588715946826126252293241888935920812122816841221450055425675504042908830949970424810663856263582929520249232969812622328717520583093821035216530961935664350753666996561128974214106338464398860375027407853130376110304978791971501213885570807716962846917345016152971989462454447835833299521293901471651625780946025070017229030953460106775455286206354412707285356870764263284075754828302466766577633470034139273798085053390053957652628684457542652126481662975149826139670128353254363055630458241947352281726574133812863442037351942943670396599701383695371543775193999109269469465838575503512348917759386407522636862486706361666966369868587986248861525665305726001809238395802602171308419674018862297179983045806796479229664052444781480117202348669797030183921311331304578014664185926212564638502420323122358541208840872301220521531808327565243720797669320209578564071080985827084643388920967955752228636843738206514959271214710371462615691040385094848638329422360414755606614696514452982490692457293410158695366065976193474366268724243233498490922321321424933233371725556729574116225231580138931099218948432873041241378073368047380228504706062010650339692524341479541705003544461793072786294283916167992312240515102398306261906767962753361774128737366117335117631022298317388360609827527024988009741613782616706973667049890672663018169533377973307881928836612081521080151646240372209107445449203144942314486936397256952105475764001054157263945569682821169960494008724574909607957822555323321145464262238504380619713521471210450566764754598396698999839540763353322008228387235414911093614198971370974411132085912778713590766547919839598174914975764658672296251995617164038884363713372140861098832651726409521483549248551567901843205412385438477216648204309503054049562736580977520240414472917967841024734527977679404676026283480357262995727958162872904401193951991304292521866828209958262082840485644571441726427175235905823175765356938852190995469920859493340968456541773116914129265285337665053694351956931572358483422869417818422247385969709824121911707271694879804963886100347585651657336584530040187965424261453273098965368495985229134415599408164257114727144959462364157764173200508905380169659003752803805735621611543720999008126101433560433787105960152720828352401242776221322621281110133239962695317642200033922251646972656076971983425185425217990570428077104402932450368597028862233824940997521024845519104186682512681851842305315213375661168490279090383474069432664249686298251104169405773688640449278597533060570226006052728354755404375475994466378163332643724672400211967329470628709786551309757925386012809517714897020790217901360877164041196816871494109499058636116749067264190864162782755229958757322447574236035059974130739106986246343010909627268500804566528213079293744232974948772910718160304954441433166996019568292318415606433835652338106184241626183248102052779758682296827063472561017406000331888298990720444091962886502231416503422678237278653752575730942912177985456954975567945068926176952574661160440133366710577192924847526902595522635483838505369230900175629314911631100245729021152065363586147928804716424973698398139695952639693013495025253003099661901554359089852717137146881399907894636506156811481284308804656841520693294803430500843314218086927122516016601796498158276377585181362014701784118879248744104075660851944904966025501668722414024409549309611655918963069257361633053815155417840793142171198680543037654629690996056058731695692664781211778900591021396666146763552842302972890063401075561964405777858279340821691501136639245259535503135100779887747911682759639009272920535607991354038369835113472371928522056428934145731546500846777473575471281076246873185836354919063801131577324291325852754879319144330107603015210554614874915984817801495117668067657885470270622128160646859000529003159805361846933331259729257860799538330799560861626875800276786563839030771148060028795630990017545504005847182198657447828089888621200315937487717887494182038369300648907588193001734641145757265710416299379192124901571626630405144445480001275738164151400345058293795837524014913522356756726497285066741008941730370440211680617321744906390372017760563211227159733435300331553437758504908915973386531815466757242341331303047608019278210823727313095246167163261443463885590765919908343097068201331740673728124477541660851513033738843322203663678916438163440354807512465206131747761171451607131827313032790392562944943691704338597353758998946978882800252018999870826577698072761744571853597116490869873232026579182933846337256767505105274623252857477664209922247302999847750083095918102393943881258378069857325863492801345143031461385763673070000355317717213124743621315098632970758961339467519984433232955404875743569070081755464461354227023662231067775136813524417620223123633487790627332614483990716901639067246133832750105855098305380525398397984642871121604515132628206728400046622017988357009469256133245246518075242161979400315782320582211832737108462615973056110697203800714088671050424101130993794794258518146397947042338372129141207133539641815775496372393513991665228346623838792663763710107668319707387486901582224664949339706455294831340073253294480753728431155058277355328326000272433090181852824235312817645840441773877840597106419330393568077945340346062634709902565748055405407182177784630359759693702829575755001361288985273064897457979592591233140641436585939136987803511812575363244258964420373884775395556366904975544041379780005566376548910111662424316246228937072359889355827764161702553359717757622226425618701295172700024066000448128525926413474979556478646178635805926668016823375617601191826631693784130612107828189441454383217245557970434787507089164222838904710683032466825545951246108480036444924014841584126575609830324532905338557177645341186546854590175139662874611188440664690168504035208035232952819456995182906278240997179735125671155545542107081898634339849151168931629179944410181504893911046499854823210762662883139247876353140717036867743863994588031131956311655640092827127323957848337109438122112692235686518558954853029598060959006315268904950879963283653578626773019002066700391978265738897480150705707882929853651739827955539667750813317090829096522420328867241693471489821332581291705338465517401483982532286010442130587652716260760509039245479063749039320988586634251071645757313925906185733080583511158200743136918395619551263058495262786197918064926097223600736058516382708380225971113108167657554060735462358546383492878706485124712843028811387356185129432089184101511650877573980014169971741702319298504290414969945405151682910817328557120399104504176400355613259461345860073992604871693645628455481725394679231231169926945044582902095229895344522425621001246831500049876713797765428853503632183064224088085765952976143150877940276971340258181298805022186097657474105977084588069104317197355825133835663194132754973634202689432894233869849319822118293147306458461368253342827142297422296573370398325032405423428237857726630304803181465568690172063856509498621942798964385977141787907898270804080905984626203974311863939054160903557437900301198037914306284228549676462412439605374732882337863000977621549691298162790291580154446304756475957116286553540497453790078372849730141234780632508026248564951173373825047632344435385015706424086269712999626828879508691877700884744489663020101918273636444889993091751295411089043294166165833680215186670616311839555842419082932092175657241745857044567177746237668751033897294694038409285509097249211943039433666384722213291020904677019310356503324537529433792337379777632229456365265259668420703422961614416319003243594386465085986142243393035604113026100729113550860368596848335282764219499232038647758448948880308979444299459006246361282765872621201535901405615855858726816382390967993431151451585740740550341060503907969609476108111360252163063615541985866780041164918641018080655032071037865654862175477677858677688344124350982316275205608703185303934138683933045207288691768504908051882944925284309686454520477317790547370261531925037961138490577365270155646750441739293263921358871799197194042722278471675478823861327486695263722005242931026664983396691708255031480162193501601023548994128922627517155203585802775813738312715694628474822267875560832387081342633208256015148507449980104520557361202871920310368604509772874470157338873264700863876690633975906670908979420530989175601361654977165137175398308046070252442644314225795987206147560088582583522430664736503755708219833459394002974674725904854939018164065580614868376076274133626926654746165596902537867416304877762762917383888738148609510945398744366211773206494771395534603625296803467876294580746147411102301850817989795035416873951693107905550065519783421741818457765981179617688082088986218895552015892648409476562183376748306558560113045980742420844202826953860772554432315257602791230323115776651793112371380956176253196670051802102774333293930169718307137757612397888038129933956881304550312664347134653149823111876172270655255939060473171958362965165024520092562054638424279007563522259852170682370353660550128691533104258811275939228972175075554774096445776093112665601733857233753419244895826116296256524561475735804749527731839540537596279473411332948506522841923001101223775933966632454074758381494444484221047711470585649037422194892184593188416792590021911541895668308965446671849907248083288698918659011314051862363125965670413383412771677403501018707055499983480068513288903751808740540397206683654040326123058335088999536305877934443579430341637502166889102234951620859973024056745125409419424545344192322758620398934691152650249624002573776288231078173958186210504448071885494098276307994306900088569253928391115403334446719357061370416131467696735420824451170050390274012420075887233521714340974612691463229491348036693794168761224201425194744089030011688807087268497587876353808984206571010684721070393682992663738702779509552603216917196144012028473088662232790798901280746936159913085349084279041862551693520168630427517426081311001777847031456333345383146266589802548266534658768382447734008807634724192282832991179937925393612196581997415924556418283236719629495118099097290401953338438528641020779517581055354111304208492931033560760573331385962483924079836572440831462458198414085126122288624942648939131087901852383523418890034256413636353139598292002046258082795334126160376430122361642261165535806512119451989068049221724934175801955564989353705625007635825259588743307328494802804069091299734554744514927348473406799208211488735402981938313701604489183933457365563463097435790976403183307929420250794197462155916498170416274084425162875840039728600075725381250896676225233723443966916236280676483899322791372817748807999755671064315737408918806856840002429314705471288286942760733760931808732840951275333400934912532571305075153269045288486681899820221381407215404954665127329681073647886500470509589591996185400696968204259636599016344457048078390695541434282612518162875180703517541979112351615184564059640432087722542196880537456877069402202869570637607371927229102983876345797867373023916532144348242625127111036617406238217358120608150619253259964382424085088998914821279583442354791974781239437633581823590668681538313079836915041513153441884187658375246332893351610014029700058010715112392199633802064678609970748454609468071917150708058027662530531292911444945680281542100218599787462460878168211935523970981517358794950981646750282808031372891881033841711863699748899409627908934328046218988499044685701373285557979310759604485513209677458092851368189812626862876682728425831611124776956009949155168576836394051073871042253391304236109367401699069474273087691055205312595428596508474257998571781696406653600930109783822438439276163050928268103543828031874645229573690349288407785043584236545984683146250868836532518898091654233791902860130283184164149464025358235427856319282164637473117765637194625324359490974448952717671510640210072453084517768697797847670951423916879503725331693142011579967751253198564420743343745960081717976818861676195586608459655475576852761590586864922836913199147896970804208104924199074610969742508975493913611537163672885641042176081840969769705346101034455410740662185770623959573158706765675896669965917843832316138007933267581089004189367100776334573657754201608593613721961905110814778898406389662443079081521268133154212086060330079793989807833471914083154513364224366098757034121299556584514416890386082653478043740128906523614495770601497181300765549160491440998727137826332020380906768366293139824066750533467157565630455374858318185660242198904711865571198370080816743006856534317489068754691717832935217473553156453543221183902580581450440500286930842681918726673168799417869654212080809552043540352220916047847973417880257743000325481996819754460148627285455744962506019949307753820821088161767217112824130229772405486413907188518268448024710209963490381483057326599973284383609486996395715686095953872446704563184290325876618887676589426134153016031513535793387743294839208650493589521596965803638063540024910166407013702600382171031228190409087189156916432972261526693243135316517613329007285942438037798414347966350368438106825076835679018270135486553418716755184885004838592845074209996990086857174865258973876981466777973380133646378154074396925050055448085468158116338299439168436250191230842737982373075053753994462257680180939448786032507233495506770801730936687636020818623310206638919045203583364696451164783516390566704998025904449288414454740954440674722053954071410747451957543341739769284903178522949123274993206257041389858538060849911303125680997941398777624874061516705145514318738329747532535240289185023210343332620765419117807651189408400182657468600839531543392719364833429864824017582041709924255217999906214677507235740705907732024485130070670043875982686362087181742776410839380291517180636997108273707794671521980089813001485145469188949090104125770256758663476640310588886624547203369199741269158028379185766119679368099757584507504369140144749307271827612368763648612363771274634992329592079467597363691978765888611079439098953324896167255385824944447126558409400743665304821625869186257004827626958481958869851674829264996532400058825524259737726412370102269019976521024888241635530567332989469981172586606161442045213033718768726021347716247623533800232977126344704373504792329186956614566890908303105508719011282871440993117856825488837330978257611154306797425998837134978044447200804923976967685039621354138312418856794366820842279915187623302539954766222080401849577885242261793333556268588816330214404860226185281364044946603729402523592835116313796956288489909062738312076663005204996032016332571191898896828380958569761471659788262892509591940066667150640738164000029257326858173755918326870287541781509711340795986910723987173644789054304273030330501715416833002613827256208253936504132133320428245487717743291456466429999536103513854247330666465719986285450733447206088429825089110850224507127133241968679704885316594624370618644641578061360252171876426393673646605969419332191434557525973951168719772051275245170340558666384433083576780616877803167131176830617057323932557447598855903630489336772435392621080964746459445625898934041537100338274268728136302091674390593796537006284843019252708489752269027650052760567465253626504652230303653573202680581130594032106896276757445845164385184698396727859796565534615397125987344888443152649592601322511439366666331188822942461210706358776519999980513330971871384242410085530859621097507732788522851818377619738444940927518033108143724308178553429312926982134283872331439958830960608644004441817531586463270855038256110190825801075410796178607492166897528860884334544253332471292804363593201148211086334685249687306001642397773278442555897706096137486667560775338515501767490241422980867461353350404077672763537629092520236030331684487236227077931726278907490241043574420762004159316097570160427211631084583145773211157405733626793072475273549497788091344325764922207306853587207211445366309026800660115621417049545081222527651764184253119863887076335829575589172211949540021780918221075212337983027542408534464135838381565802567955182857007090267669892512853980083026224073574701879584021519445736929326711957117486102417495222254633895196978143910581123537363627542180291171830215138826566453586043652740388469966270626527959368899082997299642506877305477317750756820380080365168922274168728578959662692393192689305367182714582434608416475285625707835340409927267972170993505573585552294654306072237183650805957395733841353216030012462462125401060456984824487463225200911159302313642092997911327549337735488036055723724422454975972291878993073346198478056277864123166325016403141755834394656007304497466052487878024753607220993222989847671044273616961637660816967709624397950271452142399601607930531097799905956023831282422608365656818052070440897647582307284250356024974369845757637364592888917602231319891960825506027032815156428936521252500257791009056369364949270032540435333961173063799734454668612247529726461933194996712485972754980312121751478753711455424466460062533164647427270695191809305094664060802769708060671053018872848254207421774236799058737521137921392557361097500894998756629839532095473274831956713481315343850816272393208943121045725894619752492264885740130166430323852790026601880840429677007375830140912995629198203823650820174926760737747570050912772152418917556227602259197978113706175543711009552469894781538389900293984221364870088245567327681917481026863273346995955068176375347331978331396680162379645866010915879163867946787516869809880890879842959679059197257906898400187736842000491857637335753690359131362325459654189627466686500045358309032019592074124292084310868464632757250964470799959270382882960192632746422804389015797896299724001872278580427814916247632476827612077105245792819511923711958815860149607071125258975314353414720234655920664173826920303857738398033982382149950315190020270997404424529691846587525226467118537553912766622149709119662145614337973888532801647835623935968659842124730193860446947050201626593256712050645190532739863016856399371522314332990454271944636119054923877749701678998634033059093461401415749786544180185802801504600558793618584672880483378234446002843519735373431143054117349270466528721657556032093167777416605010029551444955638513555290565786381439630340403844640991381917955503353184534024481615399567652805430033332072153664548517770769354280895695974973499704644404328679550461098683037580081657313812225490081271789767740684274716094068602135692023468687354795670632560453485920691462584510741559152930406248258130005476167428314384707214285778116580464394614256946828608621190523014416531406299409999823617396775761459348866098969918600783555990886019387495609151749007979642037421845328217439299322797715093471032617722853504883419347831070263202529828764479406295490203027676953296732227736073905788057231999905082294838512444001898485914998372768913051525636055841216519004371179273870068107652239761997321349078155414342954130053186000578411222832085651737829316787031650251123705825754034622273261180623825394555504968536309546452186429857530445275399839837757071109689866312818852341998312065522833409985783020411297656423048807823653032080646414054269402798723403963036733124896862010812762020201755958764477599142523247020023989180403488949177690452487518241460250873035180082797028058575395034024887207515097193060690620469808255835762593414476840965646770884338377222481310666786210163652014577736950231491310647213414535740305512240100678647410052946083311448105570124892464949162024049839285239569723602289991655433856070190269241664020170660480413937895973883268854614798672164414304676809019294361993243124137378782252624777570462825802349083236273899077498638668404787491487055783022767972287176716470463312117711275598374031005084094160072113303853620766376603004678748292137560651597247342048250149450648763664518440047788371740618083869285971733932723314284144471786915337518324510357223925630626480560032810717108893443624821322342870675622314976840122354552824443112441334795237862747103705307602340423085098869482753829592185548059831064892548796914753027549147028530171414578714266787943722134544538041385627025770981597314527062071061442345439374843148225348369049984976411308736721218467477134322707712227796206525763619554099820978706101422122876588304511135824397746878370633134995961503096547490715868854628784732792183859891031678169751647614050932495014337274803473608784219746140549568045948875557036112802884722585951847246079559824647989321425612386966029812264243273812154454365605107107119866305212802507409896964643958139129621680196755201671411413055134813272994037510067573746937520613714877191996646282265051434054336358763864133098176542148201125137892264355250579159696198717955987552620440186673201207985858798413610833183216643615142738564331814833105598138387244251989809273200257774160174959613013208873480299473840009125590570003546967091924836634513709824370065488661255641345608768749658802988785575345765566542673731458804491712467502063913882114591008312222055749790225774994573533586148872019698025130395862714304100056629857373119685476619114236717261948779872859313972412330459776390860147740612697757080570498370951632539116324049851375277521795515753455361331612374461404771148091071854502605753212770263483413690800804490548750048860944518995190423075436837294383625829102818353161265941145836926713270053272847508345879590638151953835356580671343141759326742615440296447522373505609127255751701968701628544872982792990427614169861161420128117925393427553390424592616297250577434851891926991437590113013635656219281834446647118913217393321373366619829920949936079141395496415256142317645278146888378171633044987919316759955167033775410736088128256238028347942364620426141945715082936289246607850161097064977867306590344689963782195208508214954896658292626824493797613030702987458298402344899557642840243545380296666033573614813065416762911994716719003407785662846742965960388157190454154457105177093226271665035465247776079273492525376816294300548428989747471562683893743846772181107691322229398336951693205076161351059670450679990440456837152638411955579514796041474265378569825496028894511921054628903063872431145250334444981777204827771341240170865404612088597570031126182662790924354351927224149459613621634700472576966927180436985310939113837862921515082378907123533623521115797006162630004183899098962406250284278098128890091981806123520851649519015461433768659372073260427049387018266299692664229402827083765520068169166056983468201427951954228950520138284213244017808148203211510981810496867193370844855642498789217186507805417435911261892237462444766963077796961404287972577410265766125491898921622488714657789074849651073587446745101501909637515086521320802359931678701637300367151366219698812215257365102974998822277368055818429739210880245301424681346819253572785131784893050371197722759086698402029298705521272438315449745030561507150149671321210209684869985558100576066388167031688707932516087385042870117032892479615338344900991883262679522701248506730824781465135192111584166534916276084478545716788604185894137608967089377135498274472371748943133421445972423522415527249403810628502798045064380486687472881429877297628099588414183252997417138696767943589501647836591944670950305600276418050757737260965828473565918976824902994569154404982799533519979378877044228842896319779139399921104226422701658964299867815686565987524035686552741439989903126257177833225227429709915102818478911663587137131492600646806719290507754402564258056863670840424452115581586732681033162052544734464852680424814630939696609246192040353617040694050752541937080430699022599068630863256563316047549178287685670003516946650433841706878453072398153148488868049281865854426021432732195729891680207953261262012559755458090720379160569935577245203436440986015871657898642889313670471072541509918730767106228473222468742380297656040314757551207558338876013217964288161751286511225725139900832552323840088625074484852425599029128975405813744413593797931852942353393142445199939048535462012656737164212821163365227685760200429419485340241469246126326672302064348155149249802134564157954515743266888519653019580701122588848740427394589193849698401108823547888339197722164502310970766019690018725772202246578683200671026139924700944662570844239656153832511587708713816891569285907462466178728938858778101618511213354437832412473859070544770290201823346322276589821492054881516595227852969521211267014018206980470454027803504900981303971326059941378620394332458142498029720628944370356623195846722230140026539477495624780213212678555707419868440675503446130542774119667442329815692106626146870859772542103793649899582663056154812546816578656367901238584388854269609874941305742137488523704435948431936924928214849788236232597952378803240527443926937001884342243694761695860934944850777496611686440061145120812135613217470128135815919257818708394460227940267634889705374798855665468761375813913981764185522205786644189040095858527070915151705570627149827528025534233752613993921126040652406355824159293846761046299404737429495784270316440789148374204391701548376051932639133248200974105366410420761287276927457041288257002050539364900654279546144914147027069085991736863835415781390009232348370238781368380771695275518383866456218623982498576971618985036126560383062448912097586088652764317030909639216178992567631544943037489275953487919752173966816950085021449602214720784497942293853437138520882035253818565080038046744800902331607082728776074932631896132966088238588205983106852838717982413838095906758274366282701191828316435869373884374515899544573928790040784504820130310774534950006480582551876503371310138251605899419825263252934105461823176158791651951222577607195069155507179974606415941992587620819968650935919593554970041698105819720101140723241989456623263930490778824987379344282963655373953093261426174106472723046808725344980711466304701103198923990589948582890844609605759514728898506248894563630927734795985614790670109529298918510761657187909682826023349973607515466726711853184341302994490404276185131508864570737053321690411866178297180774810281514096254171932956991070607272744957109837588030285340305384323178082997907907745245773690301921347342393439300198584205769232982163336671996886096577646870195270991126711343582890343250944936021111927271475450152708173081258358504313881545115090547408585161705592863694330760380442997271562977424208763735229345762647008926415277364735464830215746880946057110233944635505691195145417045735796181341940301177806030073749837090358069260107290282615745588939144193511420129431402308397663098874645197917878999740645100370675403776707391050267005903658474781122200415857952126888039398665843962841428151468352927745555795723463449469141095786581496121386576288907889320375786315531448597031519152390532789186779532410473169768379832316678292321989333810248757336715980340221824823471513089232798226480058729933930051466217996905080408639677762931795503943943997990952806213666284921314692443824258125040822406996289484635829885610436798530576257273077602217506194965957999244451732752364216454977442069737757258955459708220804282032499886676845395123531611786091049653777400928898604233563715145449611291789192984190849406717828436830911929021907152203742696455112575839037566833461379211973008723341438280800889990418391050245712014338288410125628648337071931126570941225160602777243954098963128053717402945729402913102535671546674025313926484716479382377439295237487213704399410516874879262393682588491704683188498344044227716275015382143598872389024831870722500336338254781778423539355022893633633098669026320689655701996947446725642214324032056203477484372420224919820833541389197655743421220650128114405678872491772339034445316421585018378921172284609176432473604956237719040228553697592555636372559455659455643786496019285467400279615528028707134197312045056185208473661309399486189550496899728684986005298117868900297637241437634491883355576051667074702960985348513436482906538316778746389422152004065869005818671866910634912423703472638016185188217744138694982871803404299061975530553727207239961688725922110696465942428895522901802968351478232667847186979071687558409373680854945647220956568692452488153625635116627261080314400445767652952197779501160888440959980749327980810077507187599794866265472006146142514398561893071891211680512331096463730447394611623102969108989995337692685539854600482239674583310984466660419989262145978029905961560729371511507110463015354481261207377958827849311576283857031783990798700545223536993784970159487410746791694068248591695634574638605048034667477536520303632910710330411466551882304241643385173354823311493759978911432461781812627176511940497266484710607851941500841868088399738903144110157894117371673023156847028131133932405643816152012449480217669829138941176483300023207986900783507256121332592826931028187283854304748421952717880931692453518885879888408066095066680375398070312889800084851326530031143289667383342007171711102809611233202306313225133599907261822104354824561730701150970036102137543144450095213029720596342319854184428998089960200567796272972427464624840634329088355175874271815988642172096060633557107809119284991080677101515704621432082257006647128047982802826781281503678769856593445011887057146559323364639829492811906127010647693154078433201351540290507949692885888731696855037240327936339469051037365529397553178366561310440330709551163370327291343714291374420248928103474825739574900448220934127536518798719400866025700553057266577285524273149704677727676495232478972046744980565071260389076060984094497617734234338853654761690690760353278469049199496781181008669669579847136502075245570301834143348075559097069677487736074449984444991993962971798550209478603561687103735582946517314359862904840163874386604016703788946866233757537379325937434136855261253842423375262133007103991467570070838569966092800141032834073634503609447439747700482410844887154694314098718283567121774158840322315262028390573675405739260004610929994053282170456826978623876598678992805557131532720485319401423366416540819851633996671163362686469693784186758194186333500637060501329641148017240011096760968137518187131417431174433111408448818654164432628813091442590145107514876812501615213373007317044270671237206277448823004797469139826911128641757718906945433255799245670654397948803638814557110488046708954409917295901659054649273527137281933057402601761623350866354332781984574336592401558379959718856859814792528416293910179815850617627302872353535440311393446509102442086753977665863929717162487295539552772941054581375444870613651926605891279188194319653921963114599018121103672856173351423495163159710734855824793350242112573426312428576095214227569317141672692561317071122979869784643998447847093789511281009470009554637719148926171711580452038705804978825607748369481149315817903093573560352486657980583173699686804156309124561101775522664069576456964876036980314523648546283955503704467262877035943548319808727518242952296352332058056076854308680550645818487314317414778626650996652108302020358658776267153699401973146746815937337864806892863549579963845588967924834650096271675482937507845823862028517318905324978175803791839481285386089300994124880475961235589044389543272585747802146841981393395363159743049660191622174241863096943412279788608417645148213870989108934235664844399245605705978878153024792994406064186399141186494859144481017385429899314350239658141811859975557132134876924667311016834474063611733503149413631479511009619723862303400880755221657412468480514458492420205580634824307111271888270568180779521436883423009368388075161133803998398242644887967550057876083960844453362096603750140784017014160325026812623591538474785119020684149553270580985052278957073388671047128856351392519658899088159180339427327031714838111186214173834101852884557856147196636675853344253979594421580878563730982607348629337826661059602750749898978981708126405826925634433654586265546910933182049341924799684089279235485049589517349696571312354529883433920100372144279254356753860818670340147499932531056690306445167739240692392354390335783326135380083712979625486545729786129062445533982533151727933272342484716184122669221764629799739782641419463679382726534223883441537869553746804514810520772629359998951316183177103681954944615897953213374763576398691312030512749337834615305963611794387635076105349073660470702714785782108280526042940100757392980543594806448529998314414072145259065600347380487767851399519664081200595545253254327422999737573709034330529785687786538344939783734210119998506140369141351696855744184261050110729907586683582125873188815185641111065633019105431519651737702702446671837584625981257472870412399842183502484650707491478744578856549307785867331581960223912526702701493539683438923543384102188149789128782133984835331161883217307608757500489998624262960921755552060755514962808820519882584807310691945615746545710758815720056784954741571096980591301314499302419670616791839683400632497002272634345529980494148033972379057542707852655094488016768715827155381741191431654712288559774206781606946324265579724541779147227432667665806203554612721365107449676325343543663116503743070237955443378583642205687905655855327728018884068254253964496867567003877053735088908452355154356628177271212389550826722707903060549066152996463104491641602538314411006211025653775018667375295149399870780567010286988731955727886307791216299365780298539863150906632661015261304742835157838707949641604655651526532470916457686187801623908624643484483347727101343149635391214507493486295270618624653904708929785022218529379409272344393424427431838097055325237833011070342453118155422927808346327808680149040646712272689280888517844545460410144576179116212620191361449539957331751702026871161048344672587693215839230948977838610495548201719195639069910500272039405805063482733918399951974204180574412082989638728218069009319487604564089153802886371222437348721866265717591812715830143430566890725165150744199206023764256770333625428848862209783321127512479030143054391741226570329033420421712849394183833778393687675676811604960234211760570456906956099249972386317053555521484121916096216775968468584239396543064884400208988426932651626474860443099975591279237532211807003011494850490781840944960929639217009680635382317923678777094811914091875027247297154131677661172912126075973420578530256142909246593874852676925384100648769368991440274920189387873350254603468626911383533290719015691077153513666779928216254432846299353868028063623715118777190697224707750668528001309299950574054233744386047108514297978203510204962826402728854106214429184429707170713320575054567648225481074499526338270790705135865863114016266616262417195211801208739757798048439550309552790411028206014579183630817700084725892363202247335655983701431125590168128286172344243943865977333595659983531249647511025925100296070717321475651339939077781811423104094450935792565522832250535857161148967719836239179110510828290664664980362765406240883409549776223884352026289858763333315419552161497236520004522583746434432402838732388545901731394922871128566949593975234180665594528094662401812446468405913303413799065558802975890883722801094573264264308854589857924004746142143649386392883594018822301134423799622173523061916990986274293526280287696237264380009207019338358559046532525664724039819048179914654901714180729110340931267658995637256732231863533993089624321450576064237562779328563822112473405328692632241047215956821703661253744035197107649899793215093006413780368740739234522268448030339023262880122568591507635137092081853582901841246535363901108464068901970626308006931040670182505332824465745529943961185944712483679534690858356413722690621920260377352976336442962761925634520905933861843858675634334577014487636046350143456333035781555565110948169100876380627299538214317665000264435032979505047033137277417434509962183897975251560221671638449094414672080198823532339488336224555621652568999613238262590903405533019098633975253933351459808136737296808324854344603928277076725913360753971829349939993863104974362580710527759381332513683578745788376729937536329874587834318192917266084856474698563835423360769337925014433553868662963935017877092053070711467530294689014063574878140807975882970566435297347981737015945713953238224181642838423621278336409715377998158675497447780629530338301205436418268587301467124405803791085689718259185450215175744245735847475491267269437653180915231079219659576778710741294471676117342443686478332454669612188904875750610216712098254840028451562711534848422937938110079435246973733758709599224026658903225971189758913431049270123825548566073000066615980932750830676791476865902620399228125527860534508514162725449490649432093064192187990861287284882209458001256683603819219407320329411585049016919107080083034695075729001811738930601183879933320637421929240388143294971073711973514720788414795834253990273370242150280354677715918578297926233884197151702822497747804289718288379035633414987542171503748365832683999242268855016894884240421126105512971852713835530769558327609579830694336106545844782152329641844095637899009697837691848856691563425233987573069107630463938786411776550771506248214831216294210309442039785345897497265794517695603852508537388467019359816159906685789508731070147118844905436119692562009030005994997638573494896253508143960615456521609248476062899799900845958358705143626113875537442959302458574276547719155533151829225035623206100018044824087123440174735839258724612149027318395249206806122313913251715915149833915717730614403987755625178772013153072653831476628030638186868717237152894977344929687741147056357465679380535808572086882299748908863577200247740558831016852735208454665898680101481090228324439045878998010777657589824154141469732250472192738308709923094779095521525391965178370753693902919266098190180259676622049459717700045148597169307919389696910736279301335180646213003992457369882284473106532367372831073949830317955176757299470133428787919922914570902473096977452651617212839798956996103789796322906713657649933178808239882351808768173828325376536577770379551744463526499222282569438418717182452956362616142978200517492159672389391322558374870953487029917867755994493058909534622284370327734915385978587562888003033680297264233081492370774740890299970029690437975292577546858551822187882304886304916463441258402394090375080892734086656348475979536792834829890595972627589501614614946435866121938122552104265635890159498087426303164142096426247215713228373887787906249684464280433404236892448389207502090918042634887858840985400956165611567839325703198487071970093680861473281649762932896286093330980110020785569219793439102040024680122683763320273602022598770486696676320454278455100362413799664160117660821452801592976086892584017131968752954363874101729138515413669649464491152951136536298265718729509722702293330228890832549136032829808727337105451154353140730643758063245990660519627188213538731612520904697487973405487977712359813411446082806112212272813617030130855516850783637657944577434222564650595251786287498520363065148411430033966004545618583431499305644009284211693031038750645914474472355458753384129541708037975794741733244617427057166656537964580407122631777928239364767408120223339865149895863202234452196364799936378464849725116737322119928201651989749858123249412925899878602004175106825932728784753360181393049219185048257994302201004801296493420717630497136634144200982968093098578673608162327513913792683969458418479600987135718837027867324608007578258955091240800784351128158564240846238538083677869291457357631904107233486108565844523068658344409645678225709260833157924555778845731765664514697422868997148601687511563782471959816208789077537259722741679366074849552799558201878409532839222514562281352072029569698256270942091241950965560212100291126114020302206919943638956718207648572665650740025805179086998193764823721252005894917941716892552287586403846994739297608676312644234681868483210696818979536042831361153318203695927787891893786929539290320609362838859279249538249325442562768421449375051033482770617743355322189593056059023896525398600096194899546657161419046960547531746796195358713295968913251516284991873670723994636095239456761414001752260795465272241528607683102945332997708454539188466017857824828774634261292735711140253674018678322374239744464292579081434870065065716144060826118051415207076297907918169249230745574545517827196333675369251714789938651569976011684097629009132648560587474799511383201461798233871917864712016255747458360951230593945054129061336005775712632076119164778058064323930786774388968396570477355586807321646691028898954769680295236164149607930625456989468116240628938641778106073879770035440879061087353091469443421374571348548749532188721291624631193114407189818504549789507763912871042581031202668962871158876770142431255548101815473699589802849245882032740522690581395519022495048942063011422158705721957780444532907489467377330202132851286375223629796368172632295493219644683174446579086580553504502699741286750303844836476648349348997857704996286791039118523136567612790005166103730912657058186759806833684530752006010992021067701243272900901918004185234544142774883069290252171574635943715632514564110720178622557435183385759160694744145930731627185379695108373970355182714868497817985254054801414875012038619414736821072206820237163745692078818351102403284927858299081660776290318368909411139897840333225206042210404652893007738553435020311389759093166425469493327013974756217146395478677871567170494101828741291319714097059532234306847195743318932447135817891264004046203680617193459618393270919556963040079386400910490290055162690979379707014491183922394387850701193776141449143624285139290616214360154248510924752158469626354697680535135563655972174674971432749048661069634861918515239290020788003109837966230936679364500233373783936745814447583525284255696440884921316237075070971591679217242808009562554504814864375836877056085641205890334823671255963031736580901907203061766770288357536868437036433406295223220328713956634924102434689367501711745592095773476396377091845999520305346423236967100867520704859905916228951998203042948861771429440001131364523249361026340395734985336523408678624313445700603506874989396210509096761247527174285182556729029812409605533252213215224824152636013115064703761765059654902380208654926975345062491570479927880502593148683848308830542213013880940660035912945755821471347949391827050284747308645964055864204786408682390530930950562190453518633384128971429110185306323797097178129447849320729754571760722062783304472245965320746338944007442767835231370466179236367514392516310118571863957818145667224516490783321897386290046731206754011215095071331169578912614705741798299754074469469128889734411433827389581686228969284952101818757817701903839114392402455485505573909543294297422838061545894325156119488671831294915721299576544820566550668579800795818786614084216368279022523456554673748908580376851059590213395691578814821421856389401885439359427478682126520464973445092510527722304746212845827196329313765591225458484875774627200838274337822568357550707102105046759267609680195814687828817014372101354366030180752919777604908273436113560224748504548404984241902115148559000332104160067529790134548144195300452055376870491289402057586177883325836653847517931421965653869478007994032318554640374618981615486890104883748289412112488312826724582898323949460445149310086246051138849738862291322531782969530098489889661518554774989829838450419821931613215229981634817851439616257871840378468248977597726616417240692192713096387976976949975547041569860800133886960330675291960851785015150378757492480475596121360750230736376606709987843300819532927562920618272889439942687996971211017653541064090232513534513881085943989260673779831155368397157645604957797045578579104953257096672367582666961393371672015909458805500142396918731533707884912211950732647020245054723618045445440137092880193711375731908575450704581817406284833220928629836051846736150914021082882934301312984649410318837007269512257340987109995803737857065991682337437782782060601767282094279322180454762074684951110603114265696613495644263358576215598324173626488954081070361252091685765721231097854325469961156686688729539689171743623854110252635852510028646039900431005712904003025737137326814544264836693943645396868001303186122849586844994245758824687115580030477086286416740165123017439047809747519768878180367537637162135535254301994034177352370375459751195202528551292505030192623446369751753355640692639727663833689317690369443054412974404275450942874479269170804890037879249211990150242349453580191337656699968056900840097016431445426056497585866078570245719230298443190451015172790408963588129206090521293093895671417195944590423679433669198109658239932612448463135885553781725349528656132599178000305269371917476059514909778046941185722342524371720577958897219794805938692912584429448987585162213838703898944771111851536324939001046477360462110003699086459770826128131325995800948600366206446685503805547210365394489024299340372375689939177437775667877775136336270832614333200229620885626220907926983279031000631860320096551965519178080902211422270291968321421526908232544405719195687757331993620205305100079616460726898444137899092861018380839089908782760747355845736815216799704130018468670567911959074519034969330803127699252773860199816265730427840675866441985141847879232331326986736039954049725205180634274854916042078614911061043551695446487095494239070670988735701697379358227618129195054898965268213821654825486105187512725734106505769412867397437819785828468502290024691794344055224694018017331498057686897977093808995202491833382155996657445247354261991292007573253404816008987407398469737693046283541017845610678937761369530242652830980616968324392577895186547020112980803089506709652823228665330484565079238203934173028776959295077936094462517075570502481658557083131780360154263892807983088092363357064013285760295873832171714788625983233886969859220620628816600419930400513927165679028993888475933808172628369784880950580665077206954217895497823282497791580912684221902336050670061817543303644185346495430684853312476834932507242528450519949231670018850946163589727630072929683600667827562799132598444802116170879727587769238288896549434155568432871119532275543421837767655159768461273465874251863865879355452827318487061691336579329022525782903120169684924720112849436498606134850216634304296122701567038478503481331783688154742028585742533351089683273924414427841529949172335049802617545519676433987283885774355596257857466614126245409292528285191805085618749406459536950631548848586840914240065934432744324192551135370785861778521907037115582868251887955779471345408903198892310517485456191960252496560857972783566665761727185168774019112896144565306066174248874142584217689145865175512044856199223584645444052580544764889912375912851724147402646702827837249292945906893723443915681267891763503202528334156541175821898192811842817612881889196633710662437114888148663404715472681660249782800208267935261458091584435356209314126891005537399564089639757787424219828562835209763029750772408395214249561022419924727200257521452598398012912201507761197147705623009732450945139554208501759223693268635488137484567873111228985678955260511240520407107148537542167878903380329652259950250356096949988372194061839353270786689503344742534266155405658581540194438924007898693517270012134268876081460771552747470360204923658151992612038696939410003002015574085747691531361359141053669176251002955493514355391193297435902717032767491852145636495946798726184379439984881146526559771341835600210014206965012637699785106511779443743370001907899644120194930867723565249109663634970533748190123306740682688849948001141913773427682238614064001710974093621247680785390324399501558279172697886643685657344935437688813157762032037397815910894110476037731892484502183008707197171800096306177693825939771178085585400357549862239245342554335644609397838569089192205224239947122251628615609313498696730772429025972477766527288067623798756360261664298362004255989928173230243505981864160402031508303409265400482769669239094403940542319685445114990996108879922888214208427976851273731813817824816251442851697317257510434999284182486873649558924277714817759194830580586120787973515206975192631777696310307604439502623237456456420636348251615184124868140447803592954412999550119819294002973200772685773447023296953700960160651500380131587767996489009076133494013927374690600568875802205292064897802528152578570363314478534797245953358336761312908891420151047799782504214732050037557149007590930959840581050554080892315667934988117679744461036640521399443523337486264622411110593455357460581735904155946369672218915983802909530068120001334680218256474049198825552864993986139441736435236821974811724367740955282232473966292647165331361041055548786366311694464490903336139308101316801132313698322589245646897858702098841881991116579176335394429189111962273759708360864901148483512075736209659514509815989959430375904810010053982223603108249583081873389173023760649951913687351908022283583413396035496462904763951214690966422839888270183406165253924607552977082651589071032267192989840356680982456580162765989839422735208269127897003864132795442242961611614469862670019961110024144796427373432883082278455624598529889055409160605364020749769894285152963335014536104884904346313461485807114811332894592393001942102709907282778701055588535987020477165129754608941916309004644930650101096795603484882067832957405497938218723061946220837652603677907190843080712035775370439646258105505148605558513534906720184565797507317815793055488214531643590088882012934108870657398353203397980543768200044248321759710439338491495887365218047858037880858901206796759049577498790317748696950543917797949753708915523533840190312256962384792905322489670443556377764727728586177560822932829694173560727142872607137221531223041158324518421059101558224102967753958465680081476001022853706046723059273296272746867358078799225115658863408898291825688014472885292869322715972589072666314997412611035321789458811743903934818863506902916373309546817282100813030172893756546262058671188485020304676993438363620042519113076674727581410914643619722437664460654732702667890044915807861746503457878588515792362225863381852187087856559895931441173524921642208619523363829480811680332286484576642355721841183960386245620573279594007883679011726471185672668170470198697904958357095338964831260885787217159725775718290064728325925343381662700051904628841258179061358554828423016172379819900696509915739765329885974313375996299037500593138303163935432743442832970460244084471663822343322773508453427819380444929047496502306218662265930209989463684018763757241394945296260629570814526402815156430875093142461535374344358128051859540531717968045624062424085106352362806472661473421351282295628235744115942685075731277163595808228507740953311926076640388196889888043172216267235341236767596197792419575172356671642586166816510454997996635256069360281084709280610627998091911582537562834032743004469838190900168763695237967322736996019112904536671420217272240123869577779090946469525742916446398596997441741736896755061898849086653635312953835301171591296988930799809297377227919829240123919376491948041547446380521298676025277035705335095700594002730615706494976663234971566387242310852100050359350059132874714573701277859051990791846819680272291311988813271348372752162157294222761387954191504495622017382777374686906172352070742439942127582874823966525336019160035001076073376745381078801594435371711136460435359927663145353986742890456309218224263734552665004220063296373815326476206268475779692529968602297759927763259764139395079660956591075386361011946929325965073873471694788131761583400140184988157821416423668607451037375105224391113858754257667273705078179615443605328990318820562574219284993995311194620191305687895836448772648190432930229100842218463463774533285115097293852155705606855802491954613041429164231061496026418439905932498642281544166357198564800946648318384581265411928118533046519335724220125796663515379286418598119556697254524092278564298778087868686461631862820717179139761873580798003967028165366219083081525138185540308232389367902798851789821895504163950308902000496279370082497231686744135179117965838252931171669828763989559179763350263183349596351143957819554978212077786139613443300774171508051685391899567283453833610009920817770538388882087130244933590678888634692298250925103415371623523692592042799991744072468304194859321499412308722771920878605309797865269979159650611732278324744476232749790860234993882678673218129095544256433480149050430374086084520443482465523760321250505036228802418176120434852671883780464620204437794969797535236347806287790846371086844858488734015686752747459342206009880046655165718440128237334781710263521095900789325306343952951439960096544096811257152998082480625405057212199720852216299550321315126087851224610323801462298569746357150688890645900996490046948811056380067986391323806355273522999521390859670349131025521904713424088065836046195765206228312829703675854188481523493612557042439889048305845962351302730301401960140444762602919560618213037888533132447033857197861050258157805405538779957955098355457954791579906735880896403970292399936749476211702588218820580159623608750654275126818447920069208896256702461116757855958064283223295586790569321080175861522519786384505065683604848346158644193702041612955664908021237769003299108790269172613816169898111500406577613706902221053783881901405055850838971367355037749356304089613685958261035599636871035385671906249786560493241735358382850448862859061058931806766715000479784120577694440226433903249189580687295988073414190970939500828590151522682871826263648803971017680801005623175836026429560158895958765490196741839222413303876759872501591300782102151372562270783387359623352020583331036867303734853381049954881783729625327887730225114854706601045606796367886079825947691529893943058070672551588484579607497035946978830261124752451864873468683738835821183136542585644645404479383420117020430001199328953912181302119081326285513026338018740557172992672675415032671229978858167209822407008127126566620250248769470454181573957710848105915990216695420313896407262777368565985143808593329618065437443462506723917101766735027655026776182610675877325297498858082113729197234450633569896205559313694222425923827613575544628283622866317746560039213092114740533828340914832730076115321808259930437912145831269860986287514089625936116844272737687913567561722872814198033974223506946568445367424617747480020920995431173225944349435494456912208222611368024169563531603943186796642334178581811611000463835549247587964622016346499085522906720506732121614020296278431937653562355718136424668067980804534652289878878527690076714601307135433817454552481020643908468562821576577571258641377663962189519708423473208706789108678303577690281321706351166238160202818118763619928293168172257692879429181352270218498259644038424144522513922043789227409172435987931694487693033243764314391154758549471918133106474635002412264139081997844824197529522143304971996365937427095564028762511581898397880202996304934526776290850082862085199633402508676688338995009689716872573027854050232423392563243065603051576153768173889094871984492314646694285761459568360213636964815257083823869518765586895785398780100106648820614029455469714824890915274385181296252055364806748074566814948444448202939592698430067921772467359452323880927925844268040684511383723131023617328686012045770013987386069617081250230360758615144741340070239129768940686784385587395213127908852478514775933180562446006044538020207560104694164264411794108537619085062823260941522809965807182864868072534485231251898997993325349418223886000500993668954175534703430338645791879759567361954337500374574474121166145277727868276324782090792151738579851187760309972100402642648190918762441657808501070383910613970068632187701001135718533736531014366169857067694891026621783071441403254727182985606149322812823601682844899680814168252730892318070770831629332275656734989847965725330571826932349697523926735117708245302523820457795838276260009301847101263735662244542312453169729666474009758601274196391506514113938497689534323824287002358430639101340988857288531294434950300350681613956979603251762311020120070605729382112354971317835774395459996865570794342697784227730472536745360384723108544397533565333272386861311528218462558839869196741777609116773349182301912357289888933918815499420572868132249996385281778484245964952680242304607068965952597016117256694126590347302941209585465586047154305917553616871871797486196245800503918792198740255143936728321389296376150618951099653269587226187632943236114021097767782287721262782320195819221983029311994091638967032441817931369921456863552511954397952343012316635914413299381813631894398235779169086631093409283987305306190128350230896721987956823436714493624900316244651381056984110538621989730364426809619227649885083996516471225340960889902502205206276351690621540241362858383840449525507276926250162296539947099897874994470428778228495955050779696623954772179139212555214216775338229832495801772072233087944612564416592017252678841874425855260397758173500408532768633525184935908682973119796525824938384346621682198816501012806321905796298848195361343325650782123932403724509605746058363410130119274314812255173231792500061886894653278932884293052186063937008131954988786730609435130838801854948443314441063962040639706827266085757899774737072969482391633632585738700288282648208105178018691613911548443262604410442941488115642719875598983485166177918956236081299577010557510851728641765762838581136037537009486733048795650584785688618139851876947563712909111699483865287792979498915915808559669949109499889449938626095063844048841812395715240468460949273361852985495419117676165034401646604110196305608441899189008994194820079226126394051907433201682533448358875435031494121250964576271958140862737471044617759850440814005949716376011330362760282556900142583984865395037108843130920796316733894768768762804421527186900973292135935343901084275136870100308106059930513793141566070088934220350176958043748336489292699294168098087683008300113878597644589632188858449331782264382435312244313698948673138303575685526024362803364436548081199196181129427949276412172335651857105635478511244692313590445131790291157695146743139875958545005103072222749530355066621414244689563667199464611815085169213641728840566715776227523007113389988553479678615072946147321107254726244080997367164862859088629035417173416108647446299646637087570575664703314642080335633140727989500881761333866190231063036224115898320799014358024984168472406420939126162700277544082977239233919207879639395159567530703806182146781932802721471518646623368903381884477198898557051118588084706918944744204138195832074732230263406073002565391191721686005243911567190799948433662063869202249339582597349074318432939205105500365409525779170844968022317849958667703702276669053074563241256617108355048875053556546220083489504542965422761281136193892215533800224372170639230810900384155701154936287765368312350871594370138491244980398002378980794872629706584877495708945003611756527367785134855557865146136254886050463440279503287868070107627160022562086019466821941744192386724100410557978097091459847050811835858641406307122227531944438012495782184803273570752675745042709278693883145605357893283880053313607052456639589364392672687389687707248017230178106709147367645036706839210135361801065405676232561623769955004441920057144310979719178986195727577421147431982497264034651948984522827798118193872563948536916714308658920454213272464569606899046633761056686685857116656953418222522677240184934645393406445252786424295131103719576402005549560086592021227248802142692469543624997525499764332298894008970517895737215621340672650601121751851009977231203954725953727270572939809924271101049368718334131347236862568811889147435545167093341183094978537536952789247432011129172828981134489238282218653642289352371513055036898786057891985416755024916535170423980754882477882297451577655493481490554962414116622637647476212219500067962921843492224512458218611650365354376085899830385332898545217857081671157528655179851162145189182633565529989640094241835959780601904149742236229741505158726208481439115429546320689342629988768663288711311909873602995895465386595478088100987481564314793559859831870591396439276308762374610115947367505074591858116723426623762402094693971738392420656515303718312227690545501010177486689439756136007028880871179335488402426717274548457568124625316099586677329002480025150614741258355755855908369935738047093945929653977693101160424586289921582284651125250923092793380100293624410139213322139707425384371828451189772442206809975812537418527570749501158943482736384737447345214003270143436347769189635846040143820559368388169817443598513182417913953954375915586244186057908726282977940585854587627666913012026890266327716858973631106446319072771758708445226138731520478937673498607261702298959222399382990763011810975077678917571846967527770552294683534418927931980230330294081319184865286963107865420528036395603495872212278381247076495852656339877123765141154678533896044323007456058180447423432837289593278692549148702463244527792756949981412679673678977633671294668675240917157634888924615108932373879032735677433476677519730469128736735399774132812136307126737713881079822032341910853333498654847230541219472875753976987479141858953140266394431165818488206395943340208320245952791154220168480528967631587216419974269901002664716493730283499400812856897436785403216885642165909695390549083268124056986113114355460188239483735585557410652259422142804356981460413000538777538217158156361584597598912262090932421510196269502942903632391799411725112799815687328919163780529817324676146469401199460624925611258871183106133765212897978781106791725039819051277828357647966861165184200860032457050482102231819365425796095531748742682910279147368768194887402837921292141043759669140292794957267348487154478281292664218578785933056975426179789515468757323220801377896214845639310599788813510987040136332683371149431626686131628423342402783895609664164356126511804980168253160533258581412300296031508515705158717575232973741079791053542187291832011059760267985856915871980247840304358669678914238107138513680410782537692167657454669297783019356873853582787550577695888079882024510619776269274499570451644277471129474382170767305116199074030387306578540557183808087937929935216553751401151950166029346184361008877462129405031034359906148991065657839803944058816992834320318718353747634426555264309372324612091621124853210261876820173392337279582702700774684463962181742869980099388362549537488113852087195008281880428672302988424793127022914781602996444944545246767200370015822273021518809248946542149002978644104906905999468133749052297519083731465786089055107864885780401805717878024771590173944593776117194379646608228834326915250053916276208232004890446094815181619724417817436633773581201054019568074072126580732891864569118118995256300988155866546836352037811279093289441722662172019788172441837649694220710453754798007563688269179675502823228049664134026793470201577889109788130267643420150607384300242868444861087752838874353537242984230118005738390485427310605329721693215231186127523177574756254974299105287618844699446448329716103745041844039434342079435667922082182149956669002548183388787325888719996964294772200935773931547007225462259017920298673170184109499528228355897233757664217348227436038889834047900570681602907454858423866900812071948464468881556562852638186812459968656734424839552544520089421440676992884041134478569897795454343661967045263651892374192572974138971580514353226402247476700733856278035732741711690039582914856511051872602164966509069082095384366123787679435220620146566691086980400766042732189048079585525538269101907746400551642595724402849591825464900394772985620080670052404189047572201824492040853519228685380609654104424563910658613492557213272145627008444987965134062949963705906564258842683751379234608126196924103385263056197466876014147171267246649990913789317267102250815661557309969238241343120402896710477127336379017927188152580722247596900758698712613086092545012237646359529408144052050617047491127359428114071754093248927228388676795354382821892773759725012410863113640482697632030563663281068536521627916295470391079224147429137994007386243833757725188471971218484449489049446891003454816178235567954797760866935151060893692776793705833134921144781975941263047394439710633387988436606790774641248762697451749667854892761123877153183994813966845119102203575921773340565055744674719581170481042778837355749764852415783991992927672679912105668190520536590929383855555056093319612695952372194678019506789154598896912593166443734852277591733370142129700492797989587352293093986957985360964219721572661937701833864349955009808451813064566217277589287733447938801537690343770466894191542345203634089815318766272558852825769717155472852807276300264066386695668286200201465526916341296866038089675359957557839246345620554220033806613186209694191597459917372832570837208182469526524971929483404228914139523519065035231969554524633692602990514767665352301547723524537664103531920804256333188629191139265529124412504879254212355019696207862982451593615769047373621554203351163248136060144286159458641879424315036746945990005675189972956118044099253438599179868365660568460296328825247790606213908826455515602602969369031322481186638481667167411589477514019570074566593245159503377808469095691036051985385662948214241695129057187396000051345020873973969680923843350763089253616884661659263353928524559220351723003208140265397605801965294839171757518835599577452256953984469538723130992674172274259363106397316921677851630309035990609323800637447456087795241614439849274153376098260968936804230442865424358725032631781649753448612434025763624130855609215295291199021235738939797668071730215426432682256209015672906412485662448070268632010658692108669013374944129450966532847695950428467503192730152062085335384210281548172178371321425735760590007383918087948412321067776204199477531665317978963761387868671748596570977898900188150230211443707144985021804568746013176897243805577177720516846932805021623177326448461697904996687748060000839111569632599002467835233610718815729873763692105502969892924616368344074156872998651893941777147780089339912416336632249125252696501306150104475197815395374527185629041318940732794075182061689200862108640978106684466830910694829569263278951004629055950192924008727294697646688512542949912180699711137544850442378187786135488322683264213523394302224979386030642003655982031495557126861877325588091571646816499803196974981998715409580329548496774174220926759918436281345085863690670278633549108901332230711920023772116975619137952103258803046736166300573768709992983048734734297220611109882843535257447470479309323229522327432558808379901823333012642588319846269331989820316789084253709106006642145688239633426438062522227156847449937146310326962555166391962436754055020398191400731215617534421598903177788335677450706279537086110557653812457300036026547472556722713851463054475148510307056338870871962039255687073262052034233112905191611429100050252849607698821050194873511465614809894346343202976238701668381304233100242070597252490954963060003323269448844993778976697838022913323856864250008302530222223771251149890953162399692755607435405926227404193780849135869414863183084959532347326535204662011910483174349519176396975781771271011920920234756302548289380369971614317546720558825605753837408586781563501674305450954201833121161280367338611255693864143876143114884839556187344889290016198861758307052055491663557946931189179262199927131355846271151579837182038775518265015204711147724816273703181475341659928665648900853799736338113097220970739275044402594835931171487393438144381917269591396784675690261648081170735874927284531935023700400688711609394289729240143996949704381032819983854531205023092878417137245268345213259075556384039763015385460011615437292595716555632720555282945757534630191699583173979089065763148472031377604502067526604915679058941419283722659371620265917206485518767403666386073680256833288697177830886678405223393015333336739303651546290182312085855212805167247809472231897512178861752230310765694228086145621427774973848576797596024196483957319414166814330982762848544414226098417007829683530837565292506260626331289766363262374422059989838938632087187969199583290912350140209490069174534181822107827044232465373292800357849237113970190677337099346490748593572611305946634689933288923129558945945370551895942025969717233654407221128536977723845829864909264022244954272369639458381962595065246749934690021011957356830662171669254627318182813537147603945350008519591616938920656877370476340128778484277373679509815048117063783465993312846029152603942875701465523957021112956604561755621274204663928942868914034849374742453094353184836759850869664567473572885121988688173438167482796773041688133874683904198003495365852374669412441227637927462667056905702111488717162365994695765834804008438589446597919345302797562988071718573696462731515612582832158225030952868883606902970127378572996402100745312760452954846983606004089836302423257202072190905774841448399837141237581495817043317746482851989691934873463579095323842548836166739578137528485629407172650657802864191221789348958942402738386638433801345011739380273072621695278046316934605760406890453932016853159022256247963211138681343143673404343327555009450748989808326166521293464544140095865126033760836422365786150775919177380461309057802598682272968015838584298528679557343138249761443700907851728754289054916320240897585865668738053498455203707508577017069013889486452837270277139574419248236910316637062002469947734421802480709825521588611528996132430837901461619529046265693277659778760220110125784336234852384000232991342788189413293027869215581955366298454807464638365204248693663733870985481871328628786086551608775631248054301592965612328365469186772678595762888722557433981333126431653792726664640240541869228205325800369089215698919336841235473658806293271739439139327350788489628072733690122818328363275648380242770960385317573463596916798627344123078278119393476007170868971781412397258254358868681777358311720308326854856379099514882275060039269732327273638519482203614373237832225845528443429053538309823913743459555098375976962165362706215154690428822134955761500279247716831203558871055189902915453009751777679520108488143675775794665156619742345592088807116664909775996903635014874037581721671990370013502982063114672944562583058528132429768240985502178099471588523759597396358440375456009004043797214248389162431613853840924796879814843833773210476907091743879370877161960284045047111339537752525810573395463406005895481012102215784632670326413825116584059697009568286434746347572984184721490076658456774638074117019992230444818019492686963836724321347170373630451982727528619184156492747806365256456087805182145467750284144507873069659146167008954040182216754029703628927743634690243642320309784093855037521248125806598846214028495401807309474522220664041614965558466382510250823451051876834037585328247042455795735750867745116760535473045192829293105574057902461952657723546142459426943152805435735746448877531016408232779656874248163776502301377688993287182043621423279533479187153553290733195137191672037463181346988607220791408739620871034622962449979181159638151802459008171908928019580501757526556396112096445669387481978750824549567627262402885864996046863319417806236422155258846683190960591122834837169400233063291782772166692382282622580377894423694911383852474030886640024016360389628104907144657049395557905957203372091642273141418752110746983008770726394145987984168394008589044079014896281570062871571122151595852791323319634091969487331894701970188025459599972075322375899026456387216950227571294048563946508631934859839054630980694118934198357074383522398723857604922329942324778143816049148141076796315995710368988272155541684839126232686209426176034776723201842671934244059597553225787816628914217743855665503201929448636422712447470404735307527931525507202350175298779250875293821483001205962041477323179729231862640824224715342306356191736407349844920738288140935431521014392644941203414745871908648031959993952721378147988084840518554564058009897632765917631860093652842126292615059296054087090193460757118633008928425419687619348447726265715230702596450271249036478368071585415882620781716342172375072991156294173974036711755475099049617592658916207766737255621948770759469714063567859048329962028311920157571523459534706867481555550893567716233237959810076367188232598404644844146757256395864532351817487479644654439606224239331099633394550269129716342335928353725444416774913760923368117403041722247476111930068442018478662571690000853631453477204593849085093974539245815829751092617453769036277840515814352694323638274782860726636137040277942621366838919539057407594312435638441211035542842712946717609328671951275511528234481909291285855230989623115342540142806151770289360341133604457615147185074072852584889284362276843684264413206541764528499990234778671201601431992729468244662764497611815322991659256056125785558063418884929252647614114593823640067276239888672395666437230477464918776147951640676285885850514252492309449016495648957313090683380201528093793186393165451303115758721969050840482401606385092123914612009638368033639317352261715836645271360112693405537300284689437999877952128912122919461770920832807366611290614509291404395270481782662067596258788059041235386834118979261681892055325361940061781272793942396250473804023391823754604271462845160199700293364848584770956145191698305416332117201656679755297891771158156407349458245269213091324928112398555188793864896528295154351904460160222901636958150200197328401015197245546267954346395834700112235895602723432321718510984843219435073298929997782090928313985776327741048680289025133855900549040190703040459949385655781646457505969367399318369861802448717329374221877630094115270762284897140427703679372326032728950684638901669092501068105852433687216781113865466232890364144418310441397997298005869340944601019477425349575227387184763066748840958020218860911860473039272776947048776838233313186005173482906093057933018898903278578007364607748158700933260513098227413992169615260539796247531429156821352267827165064209238382470251467431565622808379896293244516992035046140574192293231919645104843072022730220810971354050186782065362703549683661873136496107649928883617682831273919257266966114807834024884366519360259119148315174583490413987413736347588096363297885319178261722608272675242925961646807065937970210361963339909553981364868940773007317948723738442872660817821133684540341211142524684665922371366984322658503166174580977002209072628394311977790164237956329273304359726602283520930496334609668081272800454784335459771720170863495477242645401310567965162510628182997367175061386313556851256146117870103633722502232532784159929721783866710794064734209610925532344656297168507648664146248836834412568916408002860289905738563160779575477679782548364314470093102697555805990748016219590079084801399327639593679650000782585510524868706892517521590299217588329475439341932749462698443695998921090731641822698669708196005520464965068288538852568666850642595543066563060619566259725353783817831502455611794414714314227014056014579843769486851658725010802713940988103289026630309177608162406594068095250784346128324272208578645405840558670831051887584305698779045151520662532611658429752264508078618754905012612678525977521399539490216860070524189624070901649792299030383139861487902226697556734607272628090003429337614971030582142032921899738924745713851091783652892200397864847415391591181714895110069837981535331321307793343170295785871607000577315398877112338772078732299227697636279230631145057642289865981880974950284823063670725166485970108359081084619696405536046364245290983149161047902688206609477691569793109190446743509573840857125663970287192411760396005559745403359035718797570098476274631173363869403385936721685906602311946405159496802696524495419812069177074232263989128227721824811121654681891806055346509627490135379740149374642834898535626403158965341175784969914844651460630593699141554522300993569198020834148296667384633111141376174570666231660737559005199402706214650386723243021296210390364528378559987176116445173794778453017023695523128529881959702624273416338417449384844975895506637436120919486671089007374601538005969295599268358052093757381951806691091527531026659260005914293844565715932315304271956966618368840975477717042754729972551884953244169727259535305013904860680853833944759911510908679248418350292339183399989044293245330764194186396563653105518175722068648937833982258175225871156012753559286031452787169373127412792610211617165113857167530448829879582215218055524819929799064753676313083315069895202278561651522716682052740769114863384362664147051164635261144330444299173017387931619137523429477193189154539007578376367002202859541700635146298843555501503579540773068483538125936521720512833057675843502762543115202616213181545117352671044131305945499338368633255627490957506196468942868805320041878154655337740590213148043991379508274459371106582275334243747937439765442870959452742263121852532799493927165880446304303171944416979994373877973107729064294929372026938043811395719669259094601927779403303405835389503167562930452796937077231234919199324840984341180415427648507505295072453257909109391036907487640427731802996493679198553386684735360554199439875137599055711677083583390007065887992869385088890842222137488514253644650000885599274238180076254714975868030049815285726549696704122317279838140370549771423257749756429268250211578572216589345758828868822109540661621424010329126982408934236738836317409754958647919324275333860722235300854246199100598376485794832831860215814798193807833491452979866954766515344384262675178758082581487643552071016655177678504060277549855571765206773556383049157871077799094167318870476721015193041660237973757314564270744172143996232324792811712652069026808546743543344683585106499834223094209283920753702060053191605817953236902475560036208441726528569709377042650861175965751585900415080239294968982195560623551619329791736735446460143448619215231617306150627620862190051988368923703296746867274824571769699769263621888129642657165356815356707273404754745915222071347880804444554614534602368506810463465890225832139495857341030721819910104600466084230853686542279847648876436750700316357388057159892319238009643884790072460374334564799762242554058187671436559277322208688685094057696582922465894809054659500676125892637025081744812066592959483973924695160929245915857993197185412602233199365494385061649952943817386139469997382602501676894850957462400431784695921076311923131196125448240994039354347179900321919665541137196497881316149458826544382958915084667775527978953089758129455901335377221761439050409203951026484932570412390206557895579472881726262483657583393077672155543759459613240439146356406646451604633761256305044938575310924478492305912040691993056725631554708862236571272272356466432241896030024365845412814824910290460581599214932070369480564670754311865386398652270127447457973614232011662073569806745176206359335495298856706357939810254521664205675221086768574767006628830381772306334264516721682551381376139963887670696812786090124737528296438532902596111756774463607854178089341362382383213037161886276009394356020728182566598274127578421946037440007955158339613200708582476134814520214459148387672490201065337699382526873452614932310336222021162553979377361990733220080151641021501677229811574199369684896986509764072632034846561908462709707150024259223995821179609758650432052039807802250856611769527035823766443673523642843656339768904916451086513137156919789930622448761608710142147500944141722399842573291591216598806070826925231274626030923090574358964621131352937818899621619692633268018624217248576961886046425134686337998576383573573244515819420553738663627257893050909751504915857582873604803330256423806704676097630796197095767534671549814062640210232565386934793093233593143146960729366722419778377547458491787901052230273909480876830996575002409394829114787665842083224313994536256904670609587693067054721800313520678946297213478398522522949802770710482274109695002153232820623867836114310238202727281920293047660419005291490156166098093189429327356567903153863759385348520381183167372827040670254277288904831151122450519725891604328047620129117230630361234080626072773712847701557426328332411629514242800439996485929517598121323627128902106838805120205655680699260560626055381565038641746110730364653864095841875130725970521097508587919664017216370781253908705168353172086549542558363752483631566284406153754285175425615978154247148991812293711824609151950670248696118876757839452299730380482154194522343202737644716797309049564082145906533256042117673218554142930981492726498045052021227014139882150869893089901229728906325985915800681191745873832981264553669412685050858124874536403321498806648987209039657947816411664915137596643795956738783017242286355529164172012040467554582066599619847045313388511681876252529270306912120666778585349743462316317095752452766604350343560238487755635955999726145424125130627310717933338156033651513347403703094349317229187326967213173963375149229393527409705389257923615207687057428596945847839960718972582849059301429554566656305976998113059823386129366837866787111924088586069761142776118695480698955674139881955888963055362584175169183196975537636625909261599905995097285134592612528377582958858893872691402931682650026245043734861439937921942589510197371230109354535718869009716505448169884102124681701741113920624493894739876998699874958522845690625155229055532558392052757463700885123444965872533956063471626518791658141369560213923837727747785308848282154901271591098977651681603808801107448776042515791809574805743257225635259501395448345403368221221713697875340350221938121876002467327390680581230392572254807823169349396228680813122945672093047766215242240260693664746499590768288899684468340245844541548896009783550384605768711278450204482818330916533790371697024268011401448119373312149721620800807588690613758048673185764546731273938289671051569491880612217022529262950305761768904263791082102968284453209801139022091147782261361754753930939199985988766194447244672664190646952674917771079569544803816727598223853515102903850963314742342696751919983548793715683542870630084572434692922546163275385652687102622361418344208155185808384408656577978517455194717722450647620812631193936838316731673970182495185498590526219918796676787196541122357868506789625170750725253261789178274553338545749353162544957292633770711789912497633968790417702392190232455621039144684354416566873943656114302709289463481754416467697329095367032003493734831920813333949946839192538200984969292065068315299036381382429465591593219776373056630595224570021303201650259521870914459256027651498905955299976605479268322641864242401268491383265916397345715397564589286883135940904297277298224718160230624902209437670292500473511937320062678839527410171986822904651588370037940260358007730246720212158455410540867076548443364171318733775029940086635452223512659890456187572780705046023433261558592489816349127341782776128508980503960834357174915702233632783004236039487503783520991806714056279612316539601604584354730333462059238005893707347513371675786075175367999304976551963143297978306453147924776316621426594770462682132598290498120683966367413882601065285861274754089126885079889129453127029961316844767301903296137304832513541375969558778088634879942376937877672899930094111093890320737088461425955041663918722961389272076981775081723639098659719151756968380539250333750462229949645174692666181467842967171161582102582231987687616542245060727940424872583465580991298935698651897819851185737118660662912453935329480732983216859174098728451833970213844491460827714181975803834812216792135472852266040463582494141464005049520485186810171417787812683622575422451548556091321376856130860883635513322218039849713962820335124184762118988395695884211430815147201623959371496733550466269053974732338980358758411049983919102220577516404710716723141040443883739524336902166542968939736638601942193357496401732577946509111184343232387282925378583384781103697829828715280852744803166716176043043562320338158199479879841291020235547328408284721917583376748746938942901701119774945281362219798328081304847383321522965789347158099886296357757193060202121364039688574343483095316058556234128285034742873201199041502257948082562054608651637970384724220939711965588405407213508283109824985763666775649988800179947672658845457949243623010008596028769663485439670573687501211887763690304449554098345142878997269598909557395804442812721613107771872230431607824448811388370013387760771638955642643984177948836191405956147626580100923440293808944384214809278118248318181886301536434203147766136325919729506948329467802217637887552896627230882938463129446050894816124069634537088724464469247515448774985939948310904405164979070827150008512494896829941592219130353003049194112079283960271790963220073545145586404081817015222456069180115625614710598958178765877870884482292065953559646426625836335433322111985539709059326714003577530229787864845235100837573884848059780342146560603742384518499767914939250765839201295372544482110813758429981222964769424106159848347633347416269885447428402131117478245800072300725747175864708532458414328582469123067121639429941087094412519137380531619402793798860891710073046708878158137361762995758784624480415713734922038068352486447710763379183706427044477242986841486155882197298980166978961139807112009892045056036869496104721018729923834403040424975253391010890747048616910402193962926184136639729563080807451526453912080192834627380920992494432830769704632810980264454875843336225609881739560231614626697234611466109419843608517911083237971313168792985211904799219886371403076565684457679352486003733535504786737197097568468364171706544999683040961531776464817570204848269080952856307499872250610819456270481093696924538302937834921794457280084369184715566411719691524040221607496422771865734109239295054927117869692004385390657915217348793884933509253246712088417250127491679922247821520780238538829783695023524706929302122306759869436323300584787135613434923170129415473103761802490640977051837646797453588041753553112338644883274843370248783971578812519690128137196515387159650297455305006160095525615099117437676144158598200037351039684856274344051981490711524345853298109530312695052150435530072214437409396153298866371367084119824135167899800264993794792451031003832785646200979720391457711156083798458694247520534440900606378416601333441038354773959289121807750847640164681643111009168777242947532284686157577069042903256068357497606301011862576029102260501084073544680065435536679726859775787109379889414653532860268298502294889716660489136064999774975272932848540306389159166508820158393190121222124266231609670871098578281025800738248990693782068467532136475927402916888960340083610178123254235910418632148526970079592881796567499850565364054103803516785815673557855446875575180242316354986703735776558301371007069451225922262236115878175891208301391758388289340027815174847580524857612485964611608839297516655906034303302210766037648817698270145378005144000170772399698474604609289744993396965606911720618666244391163920096373031571976363972508701730685050695108864771420146193048805393167867330313936408680284147525159315068081751009341663497915806669182096622525605327240380000388383651369802998345064580292226450104087779490137501442372873800621034341131857627903266839533695177637682413154640538259365705016879290226992357028255303374173152103349280813969680784149256306876456512695014331700482272181805748824256541132888330466005356485949400141585224071496164512881023616672585696700591107474813367591836536115369170500673562156237278778908159349226306720686553672512638078395495315365796242575254775096236059600806348791614728546910513950923976434201533553679442128587873327889553616721559495245777181840031896212621606148210503544342470476983778539651459751584112675605309454237818139566078013536043628953297297367064695153568720794098661280071733340931158532471784620222130133847397856941143939300816669972374249530271583065710049812221931128593376041282364999980208029092504834799594214955606402105945073824244102882740892005904290090919373725425715837486039127039291000813396010158233435513801585644550927763959049505775851617640101870277988212734848360947118884150312699078099078022406392473211909435542318372589582734293461524791294704349854633348879561887113273885046264549154749606493484027091382991413506446222636169895455178220299344057472478705505018269376904664791177102801467798668406492403132384854867488047290939346484960585613212523860575250812136888916834756566000504047379315895607191874626033566363084137366215828000994642344096079135205640175086368900882565119025589867338726949146868845970113924443087423204001125744462689343458134877416352602821389180780099426988851916058836011022564959785801777040071724075201550241188242383152226666363797634119887567870217243042787055535397716470654635497966544320768325209267412213229397401557791374431017967918311425508510368725269886895941076423795999657315263979731441304747087840236638002468818203532333073442801851524702371462555771778455693920081984454246944148256135830421993321346348802287679131071803848708417242175039183054463024183295169408922383178852658188864868025611689028225096416354416617336531030726845805119375735916600034786709407512135601296092791866610067640867314758688077632920981235450461675438442947315816613463117664175812735947308413968635135375043251832042387974740627955750317961465063221486066772990635315031104636803904291874365728982684312815150621963004593292108606117639252634548894259261345456494330610402193417214077050167351820520474212500988026977382032860463515923523448701094982586097536463446264477891061883679879802499548343203326968266372562354953063946006665884805274466529487957441643882408065981424111162211463798792450750195555789800207173643067190488655324231734473472828961565792491992750750280615430027985023821719603560890137771130250802837136044328673634084641197716358596622432891818016570383794731179193555541200262623637664884154024547867772080011357731026259686407495129930875914931243649936954973366534387102276283999052245834836334566515767127741452176886041821125715842904206288338048094975025085477950985356740414482343000163373790947420307184180152959638504138066957129829933838710011547075612410321648832688809817902617521475906519331794493374200018668497962494042265025059255201730980193573493108479271261628045964937261016486789509693370488604998019869633586494142011795961598043985432117718062935689791799462681387285666637103304487453892032660897483217965222004075493493900809469478285306035256917130453065850315022092856986866953333309437134746640007877077676953084269044537571901953010169200826830519265826120163687052265379554308301140765198197920127250389664099278620536054117873580432406667155373752681329526708998569288056011059205482181567638243686695447389455310138621755588836513500634118815197226824543503097084250024816242609659063576967018971332995625456571093535422500336538331682842622673220740027001101563373821754264496897000116631116319080907039612477937821006769110235545326908829195970235529491398610737427444749684220325876913069567100574450689441250509458935147741630418169772010240890219750252833965791754848098967337606269156799328265744175456134679456594217518896896055956913383951356558662582001413378467443722048999338238296214557047527214973194667583189127450572974131577036140198855677545386863717107616777081733069206807209360509595715422018079352082674800036224220617504420729800736331376639449449372396453570853146452209390395317684974331506953396430302332007968158022075073700020312201975388063091603554625688965426959523905668099493781253256394141461538812171551998557427275270485257672783394746369471631918627810522828082532243760598308483847685520174901392091954802743075497239564927535554159359071122672670238028241457433061575596177419079772442023900846687605746665763570631760490900024758830828017139336895151619924647708250482361381490312050630140486530181607862747150266101280610572641163209326480340546515100286640239864623215117856005262843086072669241006365927064251980914952609700880399695493882242782015580792755439588445466653323056088175570429794119187990073898100708679079209541345949799653510132032827929515754251265839096935009374326996075712417665355869870285068597072417995301620419255718670258663856159389086571494665044618254958211582233205836631977056338434063311959134104828160366088160355959461996347550649635011322661762927442949097334823798498836961969719763041881125334226050671867428756969513483980018825556721230320161930128388263438958722622699142344004293806169120152297656737348682937509303877044177685352419300029945754132265860724232669566158224460668988787978476739854241189721250688923741216748068758471846550984566660590450653373716218262949646916462463048850855480351807823063241394857371013185362234941208409101752316500173922069932398684236691255772098098581580829463064088902563789072257979467918434146332633049598796329838372206900990186958951335954102633894725002837835223607082620973081550285312716705614492918356730078083559496369461778170814898820434356400466306986520388929726482729420026814392868705120608297415810964922491458565001632422440701515435513103704129269334084936485363097437457874414189930412255609913602257993614615460912361011815071407113573433644697490802793565388207717104509106046864666492096372530085008064047169346504431152117868967451126789487047794182633437724121620252024179293469037054068252982655712478339295504485696933174956094794398588783124314262384980899118880738823774493844927027291651621599385297067231472127920655355415979795503146992038293561467711406086120753862750813588903560259034306948954571139256316735119262977150650917254966315069644901835245118326069068663032220652742591945465541229724053184327616107179634339759385696436761174104819836572596984718916637420715658955021336499988472198109958243303093226836046791000253112994195208998699065229139389472079348196855462431553541316004946744084302266227109457493878979432854253985879916166156903383158798247783746320110970745110545893291766633454989069475470136934587251328382528008127016896480001501164722155419081971867104565424638587116351624356491596216413007272266991487688267761529396882491095487337600517720224062084439564994278677349537823094158528973575321977701903627232922166149367186189105382832285920563367071862977922831246092460674816862926662389971048756172179816391323541579593598074743304355387445501743084726182589930250710564308641810472007746843066840389065618299166851069643367022164667886072184719817133707772843703001743924468837154236956012459966580026626483653633075654011354624755247284372539666213919187162980433158162457662316967532376552539347643593678580524801714827693062251719727374073746842518695851125679525349282559402032278870582138033659402907812621383201378212920899388849765533300190104636083937354074609481779329960934274973059501513476791678155849516394645646788450465772928324418289737383293188127081892154854988689378442553195303775667440069885683087909250487440555273982674308985083320627182163998675326781537287847905751164607002047057275869011187125943900957103753796526909684933083063237090849898516008755267382071066190986581303632273848780180464269274540565711755416225513126935432148761893541522802810119395461317411142178162573729500304334004479530887241559718397200536560280389192411407584582526283648545363450334559251291282246141167483975257251469867061399736508242890496907550705106735524270778785442208001172269560614393260084184556662808485534284605026117178417282107379367739958298742991313604873890055478726232367920035158247160340969284183442229352819404609355210750197187285310506354806205513438880896495343869362967352503083119641274446586212918474503640226343167366426974098050180679753224837919880971481478628750976813208675164267207732380958073079194280203873011442444852515953080554176486685243157031670490924239507942313608215226818306342973385751900108527630161166923990896410439141025340734413623182371690058843474723770276079740117681699415877858950575777354318636933432649645135379382748515062215382574250904533599818883592423409873894143538426391959804160604400648393138157836463399785798253247242209223652830346458885308671336896621380759074645350570528701052794810428504395045231883750747452350772236726204714658328246521171849448778274928922603877070748330300380933113453455355791820749296176790259877608934974267314726120848671478502474691938786420918860411113397515024899105448723552036790823123399800171642653951489783230928688363623779398520533455704258481996132462780370743846477426245281930593898612659094602910157191639792808515034686495121455150122458114815285125542320556308888481007888939618646979239753222359379895079791456433718165974436687622130885529390150354596574448718264968023943789467502924680836254830969403036952497482577714901411760345843862724433564863019657487292861075517647703294785799970827443393475596526577455078301108359361239617336577722622879700172597475865531478568655673406584204967709495170716344994421518485581179053059611621857140683550028343146440458980759588839420028937648845078983843547060263855413515889267050761958656265678267448230299654585638924564814696735929767281575664332629399379367232720911937054056737282372202503769641511256492275905509489990003155951936832110190239527937987010871350391452275969444471112221263793025733346924836885645064161828161100113364295133610234382488999618115433209255800882742472615711112868617188535743671863681852541599601227905377539894139528585599566086331788525566877396547841833406067768105717192643020974067811219108844725537838171940502677945877256283749258616642700819593558041324844413123609394325996378696602795231815955203991792623847829812165354528229816342913464270137647174998275520291507193698931831907130915126600661716423454109086803866650863449791916307400482194353458399513695645449976400265820258581990989078750862965689899369416838178261096401935988354555938282633671424483789242325846445402265717629980205417289294457208970331553005863204754735388538720545111960572588814127575542998161368060672831586410388669178811388139609076573531742786544550591575493269210543901098783625542813740761082927562712458517387571433687403753357826452766680690425120608876811342140567528836200793141559877782981723591780385620601975343360746671152698955449376748216806955806842857742476973261943219599452115817742862727144595331140601887434654853573133457000060694129681866963328791246829160583384182922844555438200093085996477233556886746874239040804428131867429181175083905030144837441550445287112415300993792747427203675057941541889542357323053991205954746186175345445575194245329781090020371658480632736636153258963901914228504637686809741749533870281541870810916956156118480803990040643989023099090100881896553516006364972337724942828939283416715640625179676445031854066958226989633429537607941950724817843185164153454301139329069662025444691844090850141992532549755791098929417412714335545226038830968645547643426139630426040915070814021899870437349818031670871939493450226222313592665687560329312373325662626299732378614092278276866741568621992259552459494754186609128863192307838489366546871145348634441279600141655762331124738910412753610709162796615496148538031258948064985397449720607155032545984022913137868658890157615586127151873394839720353685661733678793702534825493390298182599459603161372411090696074595082168902990648941837746011003675874213821045768949928899126055326676810559398038078832945180780502532667896979347041714688882547050154755962262919353477567279147612790196627345311597604508981207744204854617975345589540022588086336032789353736985414726431811740559908085314516433115823770011303749615926577188796059690368843059797780993009899380335535017510829003383893119850883907892758722866072999823106158083137048757460797242212336536528133404818276590540348165355497382905481441489977840312197471264792728102342340294412501238580813091894387185236109676935489466444377167966928638504893165579486627721159701241665176019021092232312352295125229459482638562369069655217871125560526193502383736572989869997721870246875212131911132706943254703854797648785326075246999153562694410434236546551566400534904246566538429381515584446955843918455650546560471451825546918683860956255354422360009657416084312482896326680424161047607245452362750353747882086326474373097166956846189257923702681690446085747407971727352122758682640645836052641021878482933497805781460041375925860897374073614414317661551643325177810538722417613618573973087989894330435113943283561534313956583514796152171039501027861652881538601979603661647342165325792570029322442143323316903401420024870273434741024324249922995604737437748834716077356090892280273945764037409719313281065581343988954172409021996673977624044520610681742115687385967968973364350078987454123479870212969035458712992995055059810942659402312108182880489235442680422649883432694487862239492978857245709763693120382362668563643005316440889031368984005753902766750438479235676214436646695268105531902317321139082264536041438493112864274343139697005274128590236478817576298809611955489573427506030183165821192484693026378492835710126485403735323305349081761338076001718335083429367144519663147170633433576429327396967719527034845110414329610024905377497859977307556084378115991071766646623200910316360106510153327363458884143045100848728343801172652312092111317437427364550634234737616849270572225368373910267217885264168008978018044127033071204671716446982429586765638095444350531746280133069575091747134567431615256776189524929134847206792355752021947316942037618021599290603410823639190275205044194941310716330297950314546357048432968622881595543817546898153349151969857727089696022788446666450725097901574037553738985218246542776582247745647460161812788917056553121501976333717823763609617675359489442979023710710777573397379496262088509279880650164339650824602534676178346181880510031434031251126455547806500001522421841921534158973305708666497063798553918481425487793164732381319949052198907099261012964767280392000724977052560371520652186175172603303038175972869570502759418612883018743097952431733937922558730479169465668657120775011732037284984594156520367128599718093599022492979389791265801914419543708638160149473806320280578147023786795834159816252882341794177567524826253489883988609258028220206526275905889935045549610549129515752872795101246664375088446141228735356072003133319197021527940538491127602566310096486759873062798115968488865985129129508269960768992094043699703082712740398561375149968058355535438196700241659769854512857910600913140522057137402303598420472597405344218479276483276918540989660504713583007344517751826814833401438992034785523098735907861976358036268667760003751417034602764945263078353482980984200520750092986329042994188912029401273358233327052926351961252698029410190184888744903392441030150922652417555492683990522856856390607418592862000832372863680883702588839768277671335352218642785374265022407020121136954220501499294978928735051214293878890269597978382965738884472911297076605654362431990877250806660272831346055845410906225940904258781520598740152114714318021894107720591960542115274287349239948126120421392441182328959605768732367255589185389529095699737539017899206670171894073269734125887150670283239821964600348695130144102826485527630664062240716553002027740262146705875305441646952422274707159513572346234050756540347794661972519300884035559296461289624635688488664241836593239317824465319721631443271651963183956675079111127441072593906428282709394329777258139097106824566442853917597717957387956155524520782049127312986421394197929194229083311004633684273375313281796876725447897669905122034844145374142055480874223598374793879828306242788993435701182767749336103824551845009791456257868872441181834935679745491454681970055741588756374405597821583065295958815984877681160026837181560155466606468100720045260237634897928212252705551987097184354421506744219719455045259082221232344010081049615693860628328793018242877785845431423636609184794915952603789147373219768182904897244931995426314595805878872924323446729491014682462602071469235786759320190044077076856012982092354567379756351894902660281562790007944555900601608066658951684039904144725482213158880686321043676096880915998244889990403700798504043402809490428484501409645075597100534496183441515738503004671705129210839909751764920522716904722827289308348571056588190544486797187543236422462348915491986523026267574656548225872955027986362752708394664016806034028758195600341782631009832506376830791369098645479351326839430107474969213577399816389092950091470874902728516315920421837613762086538473985152877542832771963584679160669079056238584899553189555793244056064504134695292938933949155860612569373574270392935360692901821311215150221473625494386250289578230540783536540977728252058084768261074940974295996029584854181358586292179038228462827893187284451045669769710308607034783823686957327076094455348523077690979664999389726534214753165252400156561807409662613156566583393801142924005807648537353910343506557364765272708354912086380879652939021823553168898635136085193497951924789616787254807236126551309471961661541791750301568552914950824962468194171298292109374641342314849578284048698713956044599069070073238457976230038652221232904650342568120009376503879395417012988889920846037117225904312464344607392282112984478155624919740876529126472418000465530307423682571850311156377814123100568617932589709371433306983754944247579136265761942376266681262952425440077934150695733292416815550352875547491099180403655577184532369382033647974294767608002607971198983796339321687425787461364194247587815732467481306811463182574778711650886311083966232116840471142541873157649097232474484136788522947066797406704337798226041504237807375396371400187472369231402208823445624383337838829863756590606369413820160538025692980930781176319382971402700991001630196816890507583780074801515931858480872885375230491990619940797875688505612236375507918738747645855142868914035187251553801263131649459012874088164916114812108650408665447062560555059700667985652130104465276104753447947719082443002323200567473435033424925022864967302466317214077621717945683205191437788258316255392410182351638157652091430046810944709382768522249822687328845678324813853377233495897362279428216730173144609373830794575977488303599412222707083243942420694822015995341870302475532092418936279496458419974495710827776931476032846870198540763005520568522683993097118572567897715651221217227331007835655916162325066161643822205333335904829323028991737512190106430885348964243410489888573428070633770403679959750742491280210853107221050039948848015403543463051769208488617542924515406248865070144006690984419975292235229800668787440499232870242166352719971600523274584325162694325188929314404501054243506114655916264794046202056246889825199756964976941889975064251853740005847910479206012461662743336106945307548358664159033473330448050492950272349066017945765540354091365944602922625029878786597167226970817748596905864550040063894353652822074627127153405168454145768530744288215991501719356289943609796385048190619207102458724057517757537647360481765909616401751935864109504727087784006954481810836334314499715355594224938575035070916841832643954625697566472104241957266906053129989153878823916324421538334012137681974399247765268867184781736675920451876745351615430954895787179199507882629016068576130389229810231837820859180041211800200725466010524396568990979174971248871797036300129367392436288278294622625262590725839959521197793675817531246636653285116255656630597156767350774077014529793713519282233570745864578918363194344801436547306538503243547836234676021803351764068801953334218814091519500577453725565851929621591087065312760091257776810052199895873269295177532692968666847590842250875188195493622942764279170972704466025448762648244433408890179153923640471123876547445818163107566471778410663304997141790716032575943223583342681680228437750862017803598713968793512140566158650582159961572811106572614583999645349381763020264511443797540560949378725905873781311815797657137035556800324038509462042566968628212907857420022799671796417998407674856329356456357992132313119862778533740409614571981901737979299338852825669501419801271015369569561416513097979023091248016498341690985525356195556421187714600704411980309991487257036269722003238043213003277399723127016304096987989146554426759216398606099849041188413917548912588337381464398825752186692477298892382784223556716416559657340058485629766226456690551724707386799257466396156232719168022968832897332382222838067315718830433375223490664769794154183539485077568248403234707836962192596250855954008283285261351169454040705059295716312581295648980848271802811435654956293500659827726961977286293597301879401430112220784054147024660445141627292516942998009281408986953162781639332600696868874553833772341906819063980063398596844313478540486882345116883783331621447840444399412862316715426433161543815569772286094213709392346952171079799395677681099616689397000742071533491357008806233178833502633138464097220741614406580659698888435932437245260524212265930826528764887280849164841160498048297029399404703010365183883496717357201573108621163090083785179008631727266689192005868122703169050899875850839492796531875872772123945464245567243753052822868445720327221265049533833834556893897278611139825462876060894593524034553047376445770209647346278812388631090972055400221870628856155721218549368698570454733651271717611349225086950470643554017232991760398710052825446284919777599714636659419537154779257242926160849063950436598624044260710618087305454268584260782246590320154093994321441391018888619454517860280603688061293977445971517546867837131610534042573416511164550851899030627381380024872761962635646545975455152692977179580744362732432683697558523128361312647416635097112491206006593932534761319533334800284919978445450012525774824775441233567403482378146647778848859445513069551657527856488223245963123714227257109891386587018360668718232386462106629607140782995258754481779460919295289564122076004868455997202665464904403111392232840045193928533680880053655321820023989510835096556539489347481072632064138180057395875038031183206813667777004186572150601294740459067014086486601459552066903769893947748581318161051659407701022891824666297613807104385650061120410545821901323635029909036012700850930755748477101746157758025662431037635167547295934356467587425233543930348690520618745212378755862229163565441648120937050237905766138829974853111679499248308444816304162400340228693720394161470432682066217033602008966054091294632110733132438786075389629019751533522110853011906063012091191238888540429377251495545467175329871584608624128507803153693227978676076017301164869352948137726196908259228474615009523536890258530676855768438217053342366251284028918094346014784920921222928434837012784497072513056018525069616427365593473385793628917627074822345242580548118201452247110894820759457639563915635588729969020662547174829273219770894006319196443327641566915259358402723266791099355855876904947740701807002692625727162395548647880482990945366828685868058212851635151584460627767204438103248870817225244517321755296062430830355832509354117586884678804788670040347582148298409411983924265655045411770621077015238377438102410833362315092234241222676547977167765284943491375364532931655532992941846288965172873299997623328513929493395568356903664510248733739805175740272877615365351901192702028395727727276763944570022265805762784550018674063230853298657244938961988048455508331708675974616792286383130595637518846807142064900048573984515194952244671688372013030434643674698765364314057575731594468724008085307964358005383586906709044069786465096752397347816192708894393587939585007294863887895449106506608047302191477080616023666960437556930685256155434515557922363870550735334403112033917069819511241816641425280401260106193073427789631134450867198755252718981292352693858741438622107851407130593274846664013808076171204829240937526081423972798527810698772329148003085392363916707864003405980275302271055447504306624063690183890758052963704649968818618528605229854926470265505895750860131162088688442180513961208554938336335194062667721996072249628579592833872451210318812868354438011450802305825511023511736436132538243212085219413511708438120917811504557818936335142784118350584778067402340605955599739099043943506205210291751892095862612588213408239698304103330714352766910511991404156260293562359497482123806502330118583809724633727284086979871478993098711158348902161051536637885671382287619879882612989816567048492447338172897061049769305638467107897264950597320346772970192713887411070725840120402527583787239849400641916500115985693263604095391063583664897594419335829983332710363480900613725221319187814478158273250330728231294387667204067748945165139577805786780505662196663345575306137988196184343741116250011332118830541092443502244596116066491389076447451311302537965341251113093858013577612371056695131101386344776802393100572193927894520181574116250045435319170596939517220720061352978590976387345176788078066110281556594464000089191312833665478139783757526049366055231123858953349484621972595194254114612461077892190022608613124889122507729651097117875304413687445604293770277973648226857016713389360788184903791657170897571986836956248754973243151749903105473471603944053342572098340371606022493253916288543086986004097673338619921334132810288248253729547891975675626661427699038881369161450747169290008889156579518942230289033861237832907846008656375841002028346602983852103649303839742016377129464363445300147891149657470544891474736945339389120965570639718988148276235806797830493670052532157200242386426568556389426191369194239665807859709786785894269879001296570771411466810791000262557031878173888237305270940622060976184916408637057263157652830113531849505642427919593134080096865750168891717022969584370451525424253929473812365416685561104964108593308589699432388979412052669846998150038194083356999906329359160501006093922401746707823820601666898124500480273159020719214703789886176410677298231502118168608424289404471928091483035404966284868456281934703740440189497627479762093828800726708361108254584795767444680591334830793842888658037889269739749100194058871190515835100538822020875940895284030251641651744770727290451511656596026420839251259695033238938580111408317796778593619429803593596258742807020219311465025623147855098781924058813026191100320869429850377383388750866506327610676295762488189673066177297766075232205589284378295502818007527860101971448957208910710998165867549445345088500258989027763223040395601100892914017008438078198714731816474988408083484989670059108924966509831099567502243500185636758606543724331459961230001225492575565239030422607763966021589275810515235832100314184978189935544365319625509480583670872978622941848061699598095899542653326515196766693725329613594458044377432350100035539767558032463902975923208400004981841206797002339111723627320877063656315983441455479036715388342120417711811100232024900740356512064519770106392483629609491634330979980364824099493955214059712862158910810258824207322391185434282832734505588509277909910651457283653281754807228511208767688777747776617881073249120148483031138113680465616791167468890275454223069184847503907374608154252949527126281909560528731719189227275139395842297008658529469201617763315881577852749619383661374425086369924066028741140651282346610780887379084414816092044243503492644201297670566676164296895946379146972487768704133875234511124784052046202305949872609465122556793952251368733614968726610718020104918334282667417104549366998522710440454175390171383148062574825450750202008807190152835852989515972017172072222736494468858437496410922484584724027022846288026666638036349347688373358121717415994540920750892647823939792415379120685758187823747550006511308886441112058467273958378755507714478794329094775880302265911640809903174365257454320459984280009367768327525810068091295489945213636593207201571584692058205861338114820533305931820090254652231468480022687646890251092486553232133915436011834140747173892149808576493078969443042858907974692090416267546260677903629803591872139704263494050699522367529047685561748120310010802572394519660137440338905215837708950077125547142248660243270496497251178993379313150702937321458730793282665092986208231278237444801061622878364580656693767433302005812965091611582354536533888407733785452166286397158117482695287478504297432698668259090777808178308288159608759487275765325963525920968501899611868536606280810341454772883868811912548887449085526501865839191064229649429515673949191671481611739024843098325431380274905099568178294576075570289943712343426705754302295786406982678467404475726371602492370036203998649707322717405698611938318546172935078160165534202114795091606113596355361570017838104760565995654510621929669719870662164044445665165138338867795004319969085783024175869619548544785945607694890968572823996089367871604137981253786839665379988808293141508924635169896958916363305606215695558634610156872330920660692223777604128250535629283004642513345712721710979028432870087894472771245584018068097208651276623379830140196649490662425345007945829290375034745409029808693500429812010370313313299025861269113934870279970186125733830300143010133735861033492496725844434409905311751649269725874154246838400280168628457903856017213813137677322883268119757228275208296882900619542077041894307197103883791197606926487751879014094185748968505573254219860310132889592553381865228614256076726102773175539771939110883254495732901575223164357348498719142705289709531264983993211951998777876262363859738019966112788407790058527644216330603081406517092130293673813369381401835980654796704685165314842291470817375566363878128136247345190263431629905071021310666090031469171528761798877396859833588264585265968329960269105803759542957683132792660103360386776677999123742689148067678429235929428870536444807127917023801601751585496471491375877434278079283715285914653535330789478583563555955337508651787773634358492208310278268361200778488062140448602127685301779235013795658757321020133093338506769938111173312265732151083967924661692217985279563077824688550960826998175463411233087273024467523342286652748472988702611381396417310800232209263091599150897368423082242892588386010120575896574235055280311126576762313213723772137508761160675720543469513785468446602522386382594164117075589447168799081821092960818360449607931375614106295650887115970577034151950731286851059754159501664677648092889191212199715490952808809714638679311870940486963231108931124863722689203027670789248022395669307652540050694179288159475498444929964902145800070851646211790749978856174175980142180259379689936183248169687073238085607143113512351531529743040026682969848903252862841412539490918931025711718256342088020236782136546121039226301576356545622787015349921098520679247559403248669862613671929490376767935772758671363154498857701777883400146612979073970041466956121275889492088464509763200175361860104570533754661035187474737858725431965743109081107024448029516863097899346639933090786698983319130502171549023907556541011128797056580787199035444826633277248273564969820179639319827721437699546055716652202582808799746607203545612547557031582289005666582954634575571226035515342895529547533601623380196950786711581309465513000438278427406421059248140695227639528703056494747596769875479926139270252361862712130233718757634713626498976434527782100494732856468628907373318373380471725730234196462182308678783223388677431729371568414687666680009599514847504705326017902730900636056678165222665710008957437832739517407583463191260661797090402808244384044679810508957330586620722415839866386140430601170079876853258410775293397559245418747848331540333244130196312832947223158483754751239760803424817442552292568056593446814625615221205489013189913401835133959641764057512017954194127855157809021092842304279917677911157734663542229081488828999922100851756493236875351160357964937700975050900320773118335513797912519321298210889022990232788722792631157396768880689298712407464647675875886135191054574579438827564116011105778720293456173390115060283512018426399284247329490674757163221857954018155592336153030208604069690536726976326904153697816666824466246200578229416326847406425190342036950683981747692018105400088275676970708161557853227573585457228362823921556717358414455515847841044260940594387983212115179075219131122394606777366402172144670053024356119731662977964419883478119622260288385297617079248366553423973533034488370850411100721975895232918515275168134762652037749216303080521261378807338011994484708963232411742379763675135972511588847932807441540585141167508827559783019967862126868409331862574323754356630839610605147655699366053105549273799666158507128011080515873069535571771501561674279080687877125936068966687249885377387562643454713134571656936373383054481708740337837253456509277707442170227491002351318199482548508734106755318132696490254586944403006198946741115330454473823697663765007929740925422136214861937853597061128244355661165081175199318384608280674857289754329353728672211381101237191882201838024148037681696574464885148310089198533177794440817296842506393969741212130912614093349017266553150656195516834026461787591759395695738411239844791145252061202852852295124643459230784005430562796211353362741166109709225712957476754559796018223849042359306587877845450262133408357311456857809055963112964312085443225448293998935536542074966738528551510160723451672878457120738309972902253713958869920148778556333850988359618622286718736441390581787569109329891452613679962167448164822057857314537133891498050359350344753562452621616605025690778417487200884466247888836368313787250746809244062631871421235061326690291570878210671469381646206602730574269183286207925126781991099612770852533465319957566476913399348969585438808870848030577056550575523151673577273045498435114120781979672423710013036812135094235133700671109632826021704111671290629435201834594588690695157312284044227498248701247073819229482897169796750548563886202358104029720887064327496611942140803071312684660881167582199121059178028133944346042837193524296462217910215303421594734167683801128249882071662822776862722491164156090183274210724073465120540459326913651189644571958664222612733153245455193003024649083347843670093419374746547434886423131237739508444134053084709754633881395902765729444951067636523337222694605648943606290150260927890298343960703315567188963146839259084961898749562412117134767629613318687733059956910604061805538042210359370867144073539200312857906083983137621210439156275215893014044616592149585610268499539220664214280019844908724853137434864647166521799703888734076001716735818267100951036941085899617203284228996723272586390292941730888814025569158367938165848791746611126792724053857065891474003441928867829943850684125082066485356092547670838072607941686659509419042754315698765804482761497557836091450415970994763474338837410436471896304268917543113828909961992583707305078408930198589766778486946265748157980747533278498693844040239350653375446503196961519579998948497048139497784767102623297826622247284403488143838789105417914500012173481549230545798243159012175869589182104686118980907893035717637715867425000987242812555787730820560118018941950827236877360842553015509200746185932280272862651392323252816717928623279795743412378642946828685376821357410308212073387532161229089858898794728483893094541308319162423665887117560890838573839942233653040119107297712450387636448416207222509576948152293601708911953679428256686621913519075974128553426158781011540010830409554071837657950638303814941213470455906310525641031184549151949004330587072054550567918565100871267745006447312635959699681484786004807471311842421346725582666806098704801039355653941804673141023452765813429378400895680080745959955083683361637472743082264862201543057133847721519815137663997433836173151716332188100825871970864713004931579443860200651799444131450699969113866687992205429921432389428945297274497098855813616807981478781642369020160299200064996403877194376406002480740344389931088089030963411513722086970870382847142482550426807936327070885306313031058801393894573822331697224959082569192512305179488734152815881503493350624902890296233121233621700213774499548273166005789123386985903659464822087097861569370457084563981816995935067274664538591889554420868221026304095854684664136231534173346865026708540600187730319397807154040693958962507302480909845153334378673887906733968935901445190824971364449890595972361274799803715111419522773086414737531674623603563416572424008158998389508721286218460314520298067393825919518147622481655682711648320275757831445725663921875200156638505532202557573582897679606642057111849768925540509422699224618888677644909741663097910597358631599719790202474296427759953363276501758390674051508163806124629433564233295683208601053508905337991163993442036035314047378839325083438604214941237959696850236317620469316392053437634676705581098577882045309317043864002394235722307027126460924046054755506616979463093639811659756781507898314816863330321252887507220581499143710381604740797120933293952016201552751237345743742319608468277289216916104066502550905375105150228886138615599284615677293041785479799626496400895999983898562246824810812197342794214053370416110151427759072200710822206558187561969017749082231461005294615149827241853270626257497496920451491052251162993458086870534562514399028753635123792452319003863841473914875990786136737901910592391477944702941609823470555899723617958744124809775584986416941503210169521457137578047564340497906754586378828080048546675618973574451303846529267236936464527933312506178776746868879456424380223473293711297336386332583144030033461686395487330348968879581588181234282580439315747199602326357013683163263185229742482659451847545982132618590634286156717945149749223439720697528147979279166459631511095858018721625774112373238796801272784532987913522675588283642632278233646237715087624051999735700057493608415356980286966911657455498197350017893353013134518148148761616990889337226310445155416349907363506961060581196461587468554378891709685238756443355807249907630581346000839907763587553086721205015059382237860061111821410432250562032548132988315640131091493323003063741273993302929388322373711895027855079987742942747809630851749707494028308993404354790972199507200692050139892587428385952195992081113381563968674704997617777558829754097254514596477517405605485660991854538915366992514303679017556623255011356135894999475033014535400193695365078900848950874979585437101980634699954735169674941084809783921925807380536595424239466425555260026851573762839725058734386678478030431793670407017802463323702182244448538937246494307597926703379047004181574255754942064100966365967342187599562633181770179441774700577483141066358980853435833624728306132552598729234562026781444136955372576701264262401286054418058474919073036015434311956892554185853688109103619962588631710294033766461848121480914032993542219315301532630398464600955055726835396661756061554820920982198605095299969802088792044653491783918289123329575233343046631430429825770188132816925503799734205135901071710619359590116543963925196778888406771348328044723485892645653358010229206352856454824124200720291697774949208496622342369998785443593343549792977786357702794155780487683764101817104883362481027441380042383247653891924339466042198550874304098816524416155503763218158596174947387947231751546030296918222539533369968008993798264125487004579464700559873015799036573668969079594658758853714856335529017090603457154402045237252636957920340304188990714715159727829474918999038077167693853471778622671828394148614311207259424520567779815802229254300032892017185784261780296399422817887513087108980592710810769477616421751220009247986005693666902486687448670481955918518425556016162408185237954932857920507212410919459105325348584006898466817481993871437290737043629843355722441755240722016446470407574244707182149239558462292668728370642047643891675776078631922329098458581030885138987707189240934500772388758549238312248883212824696106414050758693542261239884246526420419538943794927920569176544532234588520732508865845907906524857670510596691144569690950878385277659718522019145745745801302087168472807516705776272334655841119394575906535500126512314713600692817342589084993940515014088616563274190903853869199395212596879706765725591814294338672269821473292620755779790822857529834903476543802228152731344008554864000018491306878837575106484402991787880071667990138260247183079408816787786990820322382316065110426101490308883414738966212279085508442470113806770147451700179552698050237257611356253859433644450824838349652585314652846275458308956227304804059816331141485075996912279749438190056247306487684003767017576028567690888005436832673054863880844185269573841398213392851957851176936608422689074854989323787705788864599324207470057921924505064664462261980408017757037856471698591044174447335250005288384864765625362967004882492260366867945190477519668426897721459112779483593640847118867554790352805147033737418696495241867626043223995330114611611053628398424707970258583560455720888362263811309138648679953181612904031813141968407024133266255303311721339919922737107999858913394249643457134884130866653012456301095910453455551820247149239291596214937560095650790926499135449707830700037706767658289514971926269300485114302081375551529424806432159506560916961696439524976478547945191987655068518036525690269796111540429761036513921612343243911009884336761237057873619279202213056940547172547851033991610848676162220914533648747926815555914614102436351265383336800663513746642774044997485889146170397856123979206265141053569666478044621052017923148702080722650702830320027787336364028038299967392916081661283563116034427342025557827381185837330465864816772385393883196270554539297152873942338171633805004818894386058114442430081713358545142180919766959318551164456588345622606848341690108181682343088877667367027060251040602303577088699630411376371174822852338996860313720875861047122921937511710522277972786371407904328929486694528150806867013621442758711796009513225497741373944332179216639909629289806729366020635807008047734601412641145681871906684419422907157091977770043696854282637238893869221578148145636247320503508234319951303120032278150105001241167487230857219445986444824361763397954135752558164260506523718962558135338253260662905981761817660482207186319879713747507706855846961811309332494641973636597844550258572824944675671548870087374829844710943237444305027398166480434473820556049493738090127415219691817546491552084082937831727661030136290778928419323729157369826906965487222296389436298757260577346669078452650145520986800357969437088311414935327587380305321920150515612447047254095735030926426163841775275565231995693686721326273585272239077760298593675152668876114925463878731067776893072823372055253086072038437134436819714195306684392396606613443452458082924246953114779349666331277898331358862076571167292510218275634852129667021979907133414765530367364428021689466528865053135300250473529533994586124737659243178920382601664020327440049761587454460459538484463891206462870212200064451630508660792026151896986639521802463945917079170193057826337871767689595298730413251777116888032751844356825104881011632615700673070677303132379617711183761459276299642234979588680414609926607941882518893998554787688780717922200753819153759866609543184618339637500507779347605230448166561480241738487119964950579240120578468690856891348633612615771048328417000943353302685529761770280396271373238429607094515984160011275857911692067777915850016075290843679455084824559761539397783911092710797213502557489892202943153877882771152139622531274258211647174533097762671068127882910547166372465340585703173608848571940853333978908663096438648464489193379074226385039361504324356853833832766950062593193045220413835118237814147584712848832412628073333017828853700421930349904738252212194172307291924931125607558879014016797792328822843295624671475914034837863018265749436178786560025348586853864956508174180684129704536858989146411611858473564432625172666194029681863478823462090571748250551051032203033204545662950020870209061862640866159092737846747125704830652794077281940868809146414136041490731003854919141554322273460996248164792468673117169434149138608769128556763153352481254198117952805406817329224064122406459577067285634448704982289191483186663877917873354731699455453830363483618308670006750797842286086269273307781209925204004157187400265315987149806263339681291650768180302679052084749006467580386510503286103619511673522314506796310923480657151456212882537175112200819305208135316222550386212395573768106031887455997002544131212351113962008409168329996205865153574379436566347468860106041763530624912352663419254049469216969571421464462145432262364144362120959714428042860751854975869924547506952948394544755466063165387256665643239538650166882497731643130092781731160701430574570043842526186983832026714629138561781275264738228107771664401815788427120000773223915167856901866633995791165124096682663529876189350617981772357017790739444859038165685870377989436285893768605950674137129619842473432453105089727298725530269357332130593143307400074381260193665703331006064568828859004351633668023632828257216187336148171499125253179915642176513243238527916394447907328344693248140307264395369393077294824663433714065915949206064513231458997178124991186750493459431043226614885091072451177539683872356611838328293788655885809528354055687720506678969569999784403843085877996004276690748354847221688990582568172082378771862362555578684756454892940827170280861417038054872913858587752970487085732112316908084378131463431684155691256617222731560988465393370271598003913957641239769719500019388793162347153238915708955091094581276642095609153739169387697887957857254723295400742444839117381342565355581516028784325801918117258804096825611796969959937179827672243145255560379242230851603871976387911133186141942130118374203708037731504773067890425885485470804430860436007946731000635128246273593871225250161135478729767599011437354129640956228051975055051032456589325912332768756558090709347666061080790330204956430529102611729025017229095247270826637209318999497170124901345718424353349855617832278679120873856214508945414295296232892778474208294650926456991641314051159030564529231649332908024197807222261470957520211564218132820351670615892870631288378163219147081716183011266415709777025907612222670838075281620514916285288685697807211063289072632124845678670652558136821077843641099457270383940321749547634614724346389804013291951519392988233979487498909504802234490103847548911844220823743033164907740017827653207648817893642481279469213814710673487469196071945708408243077977295258698359063583287223487843630085518858339053317578664774551947329913393223039664357976531313401502015312937244061695227260852979614025680525015415928788061713794480539981165598041084110828539512717368121696715001282450937396644018571727615201016982314313934863611657430970115001551397317706566615789753223631032128049688481772672010146633178080385337394920931844614976294379930557294783594910092773311207690164564986704614745590767107274407401420152138171347952791867055435400440584476090810177562983923778174288665249904285414844402973548550000395055585704925976924663721991762879550131665088499549533065634550174488083146613108975296282351541736306893809420703100433931114013699252974576345794522951830991358751610038128455185878542208131114963636689818060964347618364795458001815850383917592651051079105735302620196147316160137946183357356382481897223391404135896255657247839461890003191100201138750992726761741891039743364415212744897023727503915898612398235542203210725449505472275547975873569495519037637304359286374267210122534778457950236424352278100591934378037690715261142311194823099025725021658337499712473136991937752195327099740418691379152078147154832177109568332176518596871957239796834871326015187264949519846580928647922883736503406217921121008039519818403005313189423496947567620600242989558818959292978825541052959797048522827765514689653552513575543495543604419978451820873640702028193067689078156189192075996710524974238151289292267875862779657748881751491701327622111932960027892445456455935383715485156470071057743275581472095541476262401042976022780981855872303741064835768022457502593376550817810693100718290666720113842202022819281728568208671462173318880105486241605742907222955050052974023739467356547651735975866555747536740645790092545056882408179039766944380789175752241422207072800134551041693220244997534016977814299052873582839719016045157414369796587940397051211411830263735278409903740377466208745384189966872843923058469115683270347668487211598917153405409057205192925272813888225078995403761236121837134517127896106396569706214836761330682854366033933911001407267439148927444455552983665722926058062194306807319373657339442538512667746242331153178706639179632403799604221455247987427113880784283583663913277482750688648001764885371739687416986306299667777582275888807645102132273419591919326425403668395934387972723732546270473701113753301357019152371772425585707394110162004032537353725564210968010673023955900522140742846077740540203011862006128019940166887265904946146223041055557408888494266884105228078171212168299326230311146314128625961431996177577440910341746338851074525132076581633598894420760539959972570709555280453012532920551882622855502928310655101668626816422322275227210079802645015409650410435739929955999094509330160513338184823439929893271471727602200519565548763183378068381573410598890454212254607906879949983948791131943022204047184951847070661933634766322151782871021861628141927248881185997469787727360655049941811337977025090139957376265267161913993602692657297685856426569398178174777625495972578738100307654115250946725968981726925290544012618641136759547929635932382649112513702321782445795921266176726403835544604978592447350527262842977785499422111084801961383185438269599930362001875548340369689502199944780968476598442202342862039000548293891272526931581813562140324246536574975265461213950210111215553826183972836193710140649884282735614496128664290803977280025917220260050044108535848262303664719486946541371935347605250099088061122944414003605783018410247870018428953600237586077039705480380861719617365596428858916159442584029084850820697214897855981666242511172997610805566864297264208826799521795048699223333518676719662793797696896027870136000437625652098851218005203330071532099047711698100448738780425105516256688355148393986682118201954593414436617012345669971345290069473847723818465921194463249444957126108545943976447476995282821062606467884965212275844976347430471508003309963959355041186099551583937012239710575648486153834164211631354034459095734221118230162271976286025426951577008457575103498387405555280349316355492617356050719486590903174847160691824358278069964848509655850361315920646006175415095186209278397675382963873695286156135269434948728401827412091645754546948279243480179863661122769042861346250215528517913354108578982307436686382583227906183913756459774633473129884002506643346382435242719683562932733156743817091387774455008090397496639161887626228264928451746288227763765608687982083275561981506698803580731492709978073351863751723795366581316686729337749112838521300617072223238463317520791997172593898522928075781765846008452986587772553910459739882319116907092876854800407777584623525424952736642942852728010209133703368986634484519711566310478229012854603458386548408072023506343135249740402039592326513304202685453858004847537920936288820464091591162757248551459082939949067505320071472059096606343699948666373223606836850281781413283648828133913215178881616155673297636389078843396882539437835854263493909770413827471826365608396059222751024245897422634698827797730217380106423598142781487941162851896781501943660609385456714717265626096567188434649771180000884096297498488277405385452645249808534136507088812209741843469129088851716759782539806348686744805897698024183011161202193832233491263351041248145268069866576916769189553897140462401500367008180635160621277792254642765423832241951506665541721445627354041644797778676764659136494529909559231679539850714575713468053349065598742524471162414158485128709520598845255993887225937849357111152963513227873730678435548161563918209039070617756428803771024512857890761131281185772787070709623556600235385518076463638385128627643751834052778699873459155176564487576417119254936023227004786895083254783569501335739060374044951323428455110079428474592162073834765321023569826511384558345918130139472587786227224989045965625347283143035539245778880566018795046033436972013265307592969409342424900141659630389758690562585844060170688728761506407169015756247986800794265568335998305923254299485589499922304915172686604295309264299666863605146173869048396083506822212679016265389169170431415645134394068105688497902010722483001120676509846013084546641824549890889011009163571137365974939989855547246652883540077304793462109592915967518438441443648690849758078564386322084285162190223539937771289519456010929944036669959208717210062029229141596480038248434626104408981883792852414755454250667168714606377820174985984915296956593223701055238318747953306682459340865240165751673123872274994769750297257655727090314732252200734654061568572210404956127671723488421795069496831771226926758846187628931593330033319448470498163571995371327550079389423844909927936653040065929857767209702265739962743100089954214643821407810468387538527280511163595547913817489281393047019616520817391487135662738820659505927001120654853712516613243740251604292920299882120543786659158714630688806664895590318326142764632886390401167532554656599688826108600516959788942501215469004341879999742569444511582643959251492353481633937303135110778442872868588346527131681131033138674289087436753997494704383773899783032494957379700550743369319270727578167498539931729092701239215796501057950271298752965197300482693703508789506898863831898835886194546348602751085402687187899652981529538146160635715457528531067822320094668140376172844190240708893498574499467345777033448653781220624193651696586759133518942325525675058874462037659768689499186577234023447178305639578933922378452081630067603020455002849438032389204164682609590563774438650327781727120362368886824958514867970843534348320835004003242506158170961761403656080652399037589990604872244160382170334649654939824309368439337674682687398446642187504948055004466753817521430763596268410968281782336878821407326549659820123913321042000087764343127152303511759017611407286459740283453287647413054713516527554353673601163264377845180794705095620567890653714728690846921513252921748147514727993856774048653732241453213289799490320255067324072341601120641262075181150069379471257647241345750268394330268825374358531372130098772071382601492567702950624347833087595188658346015668821786805274298393442504689949660376010628873694400147998057477811382189477554108822858427470947770707655761831974150598565739592735817842492567114819934144480651959517415366254692278039871349894812789102123772454173114515993999485080633847974090405875867310604941156524272743207087218135876336196362324900694007981331924912176745663491983799874301632880905339090216453502000861973650149004030244242994755744195695483629575444768802771069326540295102908377520492535712108694731895824621536759913866048207234705959969799823344701284033577183751484105884411786167982400144498951084486472834481211365027033905845539148168499537687429391146095407768257679700078300975449847575777760698612271195994197579422043775886904076959610181690877987881823666743808711595173473319674786279514865016055135905939197783949524577594857112380753247746168603330354439570597997916859198416060382166700582050874254985722000315048988101293627311518310405841941562832732839234396395308182452461213848080463598551886085968391253235800363923266731772066194314494453376593096195213881052844876240724210450645522092024635701342878328523242799610139704792763865034807457918771512871078524148463245382744007783983462709649952685312657726961155888071696354540025674929040525887614413052275918574742467115013102717181048282585068097779769972825857011504086460170277412142167316495490968077201627553567282262862503553829626838201386019711544944360418687040678819501456651414237608284712531035798887104542315725724710400243514772121078881758077993346615998509000242348534918040989843119979754747447669163169834242846021564341707971002804617272064573449296674855256090170243867996993518718060851800715936184708478481689958322807905874979801011855752719214334112027121713662431746177546008625344591734221116439513484517456373367817129799668331071589879686242723305554610367864428360825482614172653741634292967583198842333299477607432901020734647143348183452607191930236581463496311147307737584241371244735707024640611197609536136579194630609507646128236163153679498055946792302179673038556449940569114720116798095842345252388661033175915230205840871923690106914973228307577105584401475038033465907762686051463626415991974344964288188163095034869734691747301311746513158771106245764032211279591604645437260781765484590153837025917538823694555022309105798004168915661373241784653476979577614064203721224717215299260000467574308530103500420293886190518004100535770166502232195272897342076239396304440946597903402510617200695503903586568635107382557967032995430583696709707358311533194177994482823300359836146702810584015419133199132324648396232734952442577635106926959690395541936367233424740068077231258475423002143745951314032070183891247266552696355779541978730516210727302277015938549039644945090558648506641950940770895036166471405888196355363395993999639198998129647933646496215444953583002133181457812033632390825150906909602965149991933575045060185731020295883561990837318230185431899692732276317707027472556335205512305153954642576421579054411875180875037722931330657089781255870109695211248933008137527012497920835612028884036838672453866056263146878306666329992105513506650919557812944595174196799104736344196884486275993443940159677183787905873272392793855050751300126895479712839554222864481825947662925777036449431140530275842215852863999608329293684635444850693039277523394179980105608432476396302592844565818294417236168116487112654562539714634402978720577941123896691946053068493125486378563294768155025091624294945151996294166946912742795026840311590130046952500700710838086596654849369179579262170171211839850242333100958090947862687470779119166068981782402749263498874634770118593895226386551986198695639800486644681340097815401210129263966458270107554469159344203026033570936762926614065033752119520438090011439121748022794853497843075613226775257215527238517311610909811760807727029020482290045746481880707527457929564559391999248391727614633124416595528463167131411401027929141747462376997278279226348298645042789438605814992308073624643562524197699315292014369485794917233962985081320418628896556575027827052346241169894494453401339214414647434273289037330240040930517305965462563081594443003327307206698985731422798103589219049850348124208950438459541908103774073093186252400042320288438141314783234142231782418334926041343547593963218397913235364729245479354201328902236245468094477358855562011239443184934931157219563433181193229541773859924366141535959215056026649046314960972687866871738197551034611880537060471361089224386521218114364037480407637816719348848944090934835181819226667864022203904951678398817762151487564190876328291066828737764770035520333773316625960254259640019436180638200302562553278581621472210203387638711650150294302726879305330029191332075564754565409233866890922586491555280329264546325528220024793040181692696415690171167307201543644580656668443665020886613887914211210856093645530049477292116203158270776320432788403469215662509586186799663603499568037509118591469264447528758743459755705652611468948315261024669627260312423896902165553701407092418796460154961377100268731354788929533023358943439130635083221200431528319013693774847465181086674334669676836599523796507479011952680716982755832839899502130701704642852198844511983275496457295319881984003606822560236081340504578148378514275778091694370896006565295482409151642745861242963343802990176092888678700383879262179378448491868349945585084298114363759007441047748017410153570373799724079603202853698980421681507677172050281343175242843984299971707966345193493108623921730662255272894709707534643893361866425186842355251724647223035244490748323371939053460322013317534381024251035467834600212500179207332889143634146744524363097607849168997221435236558278958853097392905621978810194531087772007684404729867625346861967700618996633098675172100099264327266159597633908531074067378262580398776054568828728277498051047965518084908647463956799618445022616007950461961071314554159942568231506487362200910274213384329616193789533465178078212423365842523512065803574692455177789865277413421677982149588032945399575208478262008356377167201788568690642742196943611916217365551654784223861271760544222612866879127309095016198679299327776454506319006306696070707741332999051887904871725880941340095340920521390710822865886053181964277992830232742350749772215490370414784678681559411783411867809844781792107361041275714833674195377408236059605136022747487305778605537495211760204746573317811280453646383712181142658366312277367165688923366255814961823838025948494077322698348691791111220289943650657775283168938111303798055452473342323003633228829117805348618713075717390039654460716326148768144618241804390719259057187255983845118780772647673377371882556110983156308801202804370286438494025208789593101007729898043363226498850752380581605118135080477391575891400512237243838376039987179365801052422415608056364664549031851764268124030422525812724750195065730918055594121271717697186469670265715853182008902057282352750953947500423242026385829637669232421661829060991113506011508967607179910788874495012247893557195912332692414190700075783959347268242870361207473874584779656199189569763232053655135914221625703460898354225972878927294181793770617606732286315238587307803472083735309813954443328859300199285637672490182775537317789089610749930814872840913715440063619495758837291505576762007728394272158645613162707524309563623423410321131709977272306276398699047956962094736330444900231163260392030034492682912607317281297422887300688473499758248303873866643105708953051752893879655136601787504724722325138040305035171502341479664018221270049190217798513271167509574613556031559958567396876338206590105545186781890373777137392765127005671733358747954408027220018126379562375219219195731086315262340431697986879511401321060766009552068876557418512955764879124546352139838145920533825165767144947589730200805221071523584513681366439352643615364633956377403895733989571004285813760497127290808299801470410764642013524282973449090814437670011787739974099959821663839996455862344812811919331923546353107610142716766560328350802565170644892242464877013481917710168321803007681856663138863588082311223306703466179739071536476337495588466816416573848782968766101291272776369461600282432337598064144010836880991400712137704833204660938869961676095052689787982132671244756217093621259762653443821847959896600962798096838132832340809983546880910697951596331018701601168388846356830598280463855691184265268151637490646181959474865648521861736813305777925392952733068871398144789409067288520816607231858496532550772487374103660459710952601149352466430968179446290105382983689203741358685048014450384066827862901576328516034248316493087875832617225227211448474227926667617000634576818762980452711384171923085015175215728723379151927509723226336611293521477581651643837607271943284922282120761498276555335760554756744376402402731658360556419827463363175476738131707035065832316184915530174696963865994328484261840116404443066025034747209483198839204599551467591509577531774086172955636118218452566367834900643815950556978196930348839061672668062164218097531488417745103825165915174513616070390546183878794043648909193086061760905920478981317916627537690986797709250998451889658455748031926947819739658215055632057125300750942878623775639143399383461748140437969911889553656500520011082229329232486825564106560098311955120596669986598082074995927971951644405226848475336747933818655423365868178029694795322311663332115785134045343599457107180964686057501879204113915213253378925156400104654951217128174206377802599709335608697612054168296507275093025856891350312922609395586069615699430731623932946079901785278884858545761102465551292119511542288905683606406607845081054271627434600754677316646924945343052535935260720021208122401824332700986551544695839330312224470039490877316745418117471396738606644363343309511294790290964367915311167461368840219120659288415147810730786236125236673723208274319568144463610375101263259645514950889838288740647451498611978512132344580859413753771833932467099948319514498761212872510014327221345641920178769208345340863337339197110246164652555614838448715781744085090556385511573302117794946429515459317753470952817496912147228954797978852207458224061444031424457895584119256728507601475413225922419970772987256873037510721478102418748694834120483858027505350973226393344673267555532057660370831100899619583816707201753841768560535441427321081093827496915447601796588629013642589903386797452724577694015191967503088372469156384293455165768250751145579187837596252356956416644393100037546074234925727436791125912494236894654938088219563632705416998700123642221672632807026630173302465100027092291215674050596471026672484502059592542090528980410132221280067145287125267822716188562047042427275440946572357299934309300632023936099481940088496754117207826261878101166511442123334390326349675684193328671115141115431406936840267034736387181394142430073213526039872145879428622912762734565990189492713734944235580804485391747192600363459898106873925910657188653840177223163670673305732954182258228542976787852500224083860186222940993581492109923171845088027686496712453780391777352352028371337442275789206499581242578888745099943240007289858169132076964792617336211800849602881308687559701542143038996735471165955991784773043778955383187033518180304549024332298360535410407119765802055131909525355761532868066155344370935963540012293019267217162835666398301618827170555175409053261167968372109578007515782499157901354400711039694268068469930548059479884008014627645238658285492859520338860748035579369594997609405854879422916631652453684995015191957145279001932368460722624768922766742594526470057150221110327957462752010825105537686740111800163666330187310328956918988219381054717612645497493796501434716692329314734077039664739233568790359373958648766643178633120897920509245818233523397611116615612275032663882712523782127678922867261721047276028633935941560304664151912221834544021725146871363159058187984695593422882455187027247523985468334859452609252082429413953071510176650011606388792841233989705340383482674231837401619381277802357588236737545052630024440065924814614934831575468963902784809260487531984805929689878761223931384082076574072968689349183296239187014955774747650075411658943940839427225926807018766274230744585200596830530217755703263474500606871673148163960357144877125710151953418973698170794166078971296157024233066123885793617580526338086774437431196794962682201012960526799267320428254508476047203939257350138467879073342722854157019314002127426881054810029658489816573903088912004392315943331829397811533838870082986203214836009515218868625771933084111498359026592329496654515591393697209256349399138297256428402184836898469196821259496356729416632345720624633716420954345756377322283497944319247732992918400822087278580270575688815300329082232309802885104282022254175871967946630989029876316038040433160038023414521750761256226363398746883511216560071052401587426725818376200525104538689505073839283227913390814717432534169390966022868333120856556383859051800512421690054517833572612742692116683632897436397622264535207532251501164690667082451216605233215197326172579753134065867723431634947759372486149396446627620180215304923632644160406682120684970362685890687637385724812594068385035346721694076420222315014692467588472154599936112902567671144472013116353028565889073019213527109628908607187319992322304731145211700362349464492333971195864662938915686778062601151466222642799499971748922878172344671802687697144541678517902739196354638747292819567332723341333046102401817820367974752928719554174782993259917224617611021000129786569499170971253923675674044238259118436794876695962559159632546657228858852765027105268610825809863864452984855347101637010445970043676445283021785626983961175391605880374127661955986718197276477635543302501851217023281576739953704525200093494950550247194641427815081151181217228729547937629862334032735734443930436176313608988086127085994279033112258516015425093588751454119594997430376856802116254944605291268041285514435178965025966856727699430821282748256250807075675070975292113619047484276765301408030750475391010412940331500291653416292933987116241604891219737362080405679925752339675042064053179957073433807697326195007053716210210235949706925497143697248865506870636897841555522987798491203046010256012485904817202469682882199121353879347323681939172544129588741231146381981112500188923958491021937299155719029436251889629697581052413000317308295009249395129344921815738196066673743543063483446512221576933257813084292071627772212553681829785172907688174877803055282285723350067985452062725956371715145724376412619089414932573904717910027507482214970100178890612772784504676228022291508112892859847585022505864036020367333050266950386415189461082503849101902637011419876714975435471471477080778039424075768102252034699679030299870691067852740357794142976407225554101803351312036122652381595289505511952581713974254900044910779502534222711760667186650683690841906924213297191788045359833374258267064394341847640539569709250799996993463053958863358404460004098449400082076474691057639047632429605705053338645174508402534412464207549987640806943202519499220972308685170570080911885578737612585810054886090616526276650926500781100819078484306539270694569859731887181824256578930075122237334246202619840059699586455616063109463152362235249491670867284808550924519580879972331143492434577147389710013286514939745346085945746622570287477380411931988424436604582278323159824242351257875713940015205377473600125366824762724348667721561729915994635359891694848600267935407231427707182355761904355716615381459425568119486146217985560446611420194678656015319904715323384309366224473820114751445113722493957561673970797067699541126108795733561150431803396329971640138663147458106916154364068391032833743520291444793503274078693147648468642149931213578038165074568608237871897585397618950026586236282439526583785063687267163881669660583934448839900094405504089211798685250318970160184012039717618250724139364943052318871502188601161416565036902101075845635276115341417784757316023353145349507257142718384257002763797035339085124145131112656159128846229196277866191739818314103467350267441941657773680345133827539137755524550156185947730397373046510652956530859463441195898016953556225210245842139708763276489211962954113689454553681678482484329393404218181696770579860172582617562291765547683963572353628963503411069083929211869045949832481085457248408919374817233711361139999453908522076112385910738294803026792715758727189267031175008341558795905230621317513060132970651285779456365444210198149394609273226512157099812129997274854386872791258980365009994796286688172580135646259603403369088689602301432536741972940492317720143465712955747851522661677205540445974031473641065603846820832853368797231524858883464603468414289587633664558652757168554719983797861538557061815465484331623229216932212100650166548284724660594086916384015432352334256939432098290955269200928804040524382384636325602409162656865595314276956676427461379413282987411650262046228439259904566480961847726814663314257703330925989926008317939093469919548338551542357978278507704113635590400431303484103235298152205772233502656601945004000532013476504148179413318782002565702587640461126560655924502945965656642928489236788831613697320443244093773043994126830016503545465361155321267599463102803771519371928329483374758931393032291246109696230090399947973566352909439493519160014805346942266948387552437914615108074548006102994153978237207112613703120038859734992370878459738955977143664082505193345229643450209174398794179326844087582238177210762305272609831519899798037032177011577563668261767652510864336874559183528187952725396471547753754169957582454416024966487832569916436770352939427862061448636251322083361009269009971691274757671123839668925320737853722976350788294902417822196295037377391918615507238479008563754754613183748978097642860381599312890526663296746975743245149270065258450048934724440953493171181754524197005490075692379066913145160036512712353571730313759736718714012046054185479495746791402559799793691113754997933876926562031505879042094580340784358047555148106650466036403134680492259275373853051357567386993717355293653219859680383358645895771838463638936200071653790262213190539412801639176342634133702614909909494952485154614190815331413873769556082478439097204857978272168893045709934205707737985284804260477156054886364906022483392504783041554666431401331659667510396073573094970143655550178600178421146830424668118923510854993015459297734268471150121199128083037439074632553624827920793231059099331429084860711765257339280289851680652428819796626218907137372064513820805924409430796190397969928461470423137920521418447234330433168043302621351882322199099211436645955903539747512553674102000806373045601146069501282745688359085162657498896359151308375067231171969925481972178939165802019774438909289594117552011898720873305245930019914236632413930504323976989380240345682087366612071884464920838470451916948912155376141271745303066145896635552055919120394785402290988538204964286219282431867187844156630760405414920620405615008076176288995325224989470877096280543806962779746103150135684094328384320229868090214997450661488558351762852255973381028719273287294529301445671965278055161949151270982291119787504782205986322719752679760884354904361857713474088842255831191662645115103322908212006031795957630658055349761150751987469601828811468030920053722441522742647849746108042825932367062341977669151837326024354482072424044235906930887963836939184146848319400467624762892321432159188324607384837536839463139425017430311012667904734442521629651232534667478106731679801051349376870876292280014685526555883980675135477011156277176074663022998040056278224285409950766709802808610811896915145619041995424465417732706139577625522697230473763427077679305773058755726732193696612685990480286250848884930137109207737125550727274772532078542330316975403446625796104952025019396374029073616745386066114403574013062052653513147820612212775071788493390403564159916330314298515780648661125994169580698339965004643083510930454832278114482766001933470558357070219354990823310756061664192206969706353983688532332567440687522366829702263554098392767012087549259830902634743206545795208595464387109815944649196914322527009871216183343232727025071041655657311274239970221773845653992317189719967539360562805548263504703956927271688264788049685924334090777053634481410048161879488811190381434612666858483490891851520103102748229816908704879476819325848305100623437982449431377474505544257126868894885705470661713481783620463544009840994490024146990155890943467223695387670673055348435994208697272385871389049913447596293738813332563641436642828373214544183135032750492257341561049043714642650142694556754998652019752150264503547527259617810051878488062981182887379890494324674557342855277742825609400198889998287197313923588313494394881874399336264316737549793706590222710877774159294968168792630554221916867270029150696092400683991399462942920118562785857542973268049334679847642349176034687228796997753455244545220586494215190002510616476876303352652874290263451858225157988480465276204307032845904555963274459388439483941648110388696677475707380837553748878590877860740879181845364743464563094997958889997779578854570656123047744901476468654280920973153007907634012271236188296335079124471512317334183438141710956848263402327846181979406199283363605890559075769790183318262817387040284377366144839350850819923309022137215202791287638511215855242305188019445543337342960319851288320505647449873733980695357691055466080050629874738173789650525678604982817340632687311178019879802237839150089445912486454760314451596471535787575229453167506848777653125942491651186229186152489169690870581050343562523645028537725086894678911424504540740173471978555091952293430257103204665657895340754397861953577931004517170492343143184930144589992214220641902573048242588877514358870660361068560519128128060972550901646551699869028696810407189669327890951139539948657024609716723214646664514453941583543163789244356731177256271052098042622746191897470035719871913880138936391269119451170159889968345862905071174671610604048605871506360662026385290574361197692929456974297990315210029462753694844312607457195734104425169605087468276568386492778019422886394022786056106236589911867906468768095475949586070402697871425434237102327650652202277326094557230197695709968865086880104193138360728750580379975289794036673261433470779534053052449535330473124755341197302880872600140419125804980876174189119077578648698844723085403086320577326700553090415098361699262718163255232139829979905973740211309350471298616258913495598409544201066631336100506654193360401680013088700199239115405533266831015506418826500346330773882737317919172420715510656164772787811978294941366989880721940600574372297626023506484991405887457433533561405581669773250746323617302702463506838171808776772067465558048917871596058595373176250642496462105199593129743008020737075659536560931472110119027792050545410564929897459163771212647108061857579799051474343891771272750272845199595484575634721949913384026278669173184753368514594494872365096954841758358408880634200977264872315207153485307746845793913776137263616708718294796356024049059369757173257117259302776770855774275494104834293293296420370439392354752472440047344385312198234277969675152699119235447098398592257199350564251385104761394856557018031343258223650665791993113695667350265707418392256165865351181602145433788299410689380168070533536126805239040737926821276667100456291794158045716931654733961888839074979450717796765815337703373974242687330479532363668423261714502444189008787198633036840146445708943901263411967384505274779543506913459126803777139266373512226929631197261130419095920609076067195208257725401819019955168622399498089281646473037775800650954849627359834145268116429079560257181555763341316938989330770374620968784358643922565163427333094917939443213867055446612745592154778586448440205355720268027765480943894241671848612981551084208270562166962576048986499475952825392808872601582936345989731563983523485163278905533106835192680081959759487037027172128567858136183745711134361530356504846024031487461138348457645838011088046127996428467646910061120359550211228087872062496288327666262372735085268909683699417997692806269422776484794740485092213530542240371982007936619013407093997206455839472153653530328242543804984317589522103767360210566067954104593560953731204473641708041361374461064059366222185751099713552334203688464334689058534341641144109971267820226919837256856784274506653094359114216979679598861894683715697268847741281987666525671771395506262767779178930001325969436393008862147826017291020401844604989848402235402409400371262632475236697916024388506294487877454158562022898904546470500749173125667627082189876009838730041532431993899553110882252823548418167976280995858818881433448484625612310448600578169696092391768878816486115180371109970630658559968449031502327430552096078922611541400438637322369006649585566681869237124874549484086468853050617855636122032747280539662260931294052735463970009926071527128206824332407272042533117679745600851864138698487675825939872060252479374639774946681160047097448670425525632676290725909885738479297598282774174001234772539590567884992667543724612562013948385507864570360236169351348112023695529953178479315135481546809998794124106178382814417948922799095488833523892841579562615979682832590666335963251071736233533029278065095798100212365319804612531147916692445612895608135728222834140608881165916826430968635430300503069706508218787378541337906144322837529297407420799428611378892002290728239276628315081838852873368833957927036040497790888658386663603058736358086939263171443913577535341183152539661113727732379733251717981739785415429270926189399657728689770678506436876130533052351235364202454976974353171303915528535887163269304550776985277343485042929665246576321434285791471202759464921802257793335039552748704471317315762724091872259605520390323751537202741447837267668829128433168415626986901672071508908863154500973117985198341314658688782230379290970135130329203951108668912880894774413650385396972992810554362693193718178020494071546995154587574708055893821703569654344341469133714981994585971729565778760682520700643135526860083285982139884180884783495324463098599624627485683255337781756971028226150543100654622484318176081716513176955864857186139146770525344825671255675756412544253665586586336198937714781344618821064142247640127903546308580866826779798201785813325730865566641680912831847348753654159774036097962694453776015748870276358943623039043366851295233179522226763662966041894699944496636587337346434578606979508306960524687409988465124457456003396999382446147607172514925189487084980374028773090390384435934465054948519992493738899162772072827706855161684146168026513956060644997933833690677926386575359858179634701026409497680046847893816712431570373957135608382476887755541428410739417461763220411796766750025652739440577857622657674697368807705293562131050295627107314116964302468936565988118399865219971617332720072414831534930472816527932443297505714229122173925751308634819040814445240017206763888049175383409157982134469267797020243691943776715750266077680477223311787795355070450346661751818932705014827110508007470186716424683599013376057431981873750562337635719789685099730604719331701366970690164254965512769107418821285789765300806648592352781939519256767480042681861108786110135029651085599313507794899479200572547361447921227645761653844443783709169020138006601370977958734722113305040679675467648591967098856388829480465045937840755301702968711009318788171942128671603791561753722532970094539638768729203499511195624293898632405496449816938642945342684079816866993089786649580167645661354238919769200375543111676380795769112147733725949308265811164883529428165600613056932012465389533882395819500601259153395874653452973157689842360839194942350750835479244308272986071500806591593433385549953655439206297928216825012957715411180750679886097299797654338266471824020816824654051851094951013701535902899530582173513702729671329444533743234157668388661596636266567846378393534778656062661837090468042735581297948580292922941470409176645987086314348094821775371742686489981330192099342041518734823426262546262603614874740522253609065059944730275228897099573546528406459058006276377997720014496385268712717515304927026483040647807511695595275199086779320492773759200862889416427541699578927234447443220478398602767330877966982447185112462655266855753271893889510604241056376559417483303822189168293300235710168578392664196094341407149635416791239625462359160299278969572456996441074985540438807683318960716043814746369708551922620429835227736670858026386253645742228254051103512962822484472710965682064626858515070147722513217524410624418031660899862411121655945316132756637067970647766068508447750288694414587895658594973887600114541531012147406871061141061309192945510143745308879916074301276200158161156348517237211748719690238787435323789350493871100009471098529209235453607202897035073995542375283471659571447530248184431970883482839073292155648203906075633427513662712180938454180491053784294656123731888395593251573619681219636056911664907279655488901551265675153923420671564480565406870017283644768474292681237151887910945540237669251923759767721097795238406079247609849623823719654665263894491706426703790882364735778042634365780660724820914321045668075749328299488618955435866978802352685749464509341360850433060360330627242899248206897794244831672327568995673248583832154288241035187267742175014478585402299664548850154448067939270476953727201108486425453966742839830917664814244629168657891350128433984064850279220452894519015592695422903291625145891145877366445992925978845988097752092483929601550526160788589802541140670656500125515621048713071803721886030088910133513404031460585115335187730762310928256945540958111992585452287402507898496315921690667967549979042661961491155500769507621495041329660730578413162489279361935503674656965830937827389351356188933027263505555083727722749445742630741899407916307265607795533612138573230163526228970705916181615111075106147152053715291983695393259336863490143167302710204171383017886740662882270823414856079958405862517359800894915631742625320075676659637112760723508348198517475873417112412731511359675025470611444581553024659898130859334938673494560668689064016370931242229708454773271184682970715876861936444124336582770679345938719851121559094560480636212032122930322657135216048056212669284708408944367282210712423140610901300697549480810627249143085606514848810211361912841376812318366192521405348883593381932866876437259854352557033867896578211916337471000425886079777285027152355024890626191447241197689522317746490888849825909947827274575885644664995315497649153424265193166655019492305143007816159048308574744257340476166570702064696295878030682273986672223380434014721021123219573113977151342081368477141431719584272505319784531354859895366128436596826237740597860558148966297333735505566432411716424200850490745772032322676533810731467300057177088377544336306666753220139795185882983493024182484328564712603533359286175912913935377608234125294957319251676399913423923507949948992907165858010775271363493194324894924200008576829653304859424805310946957119155589774742131435152194603074431279412929268784676957554171627091496573784433243174141017549597321446817481883266275881002462940137996573549244750098197524305554358143528867134531012814140093773067559313424738113177566812228882823154926432081823300255025280737563073247506458767967826750037134265202217152829142555985594399903743350571877251136948584627552352958855062651787525538927240628462601855470010336785676403431814455310078677195025891476631738429008900703644803227163232168021693932260383021799800800374207718873888889321670714574172422305964621167950623126289797206183065082097830400326932828850366028105697889181411112737707868340257054839234491253362174832105591830625274914768529938459164404751780540423502715584952580455500976142026018052776433498425928188084562048864598041461063082972846147965695999650112356452078538325620724484850414611932986854659804259499181697934962307164618432934930239964688379676474458150744849409727603244652227933606740555505566706852207985427162587033317300944162246389180906705842759028789138921956773384255253102835624376395983023151754882634487261459678313255791620755115685213550679161311520985532876556564177776852017113878555555356590047193508127037069366402686879034967171851760192381555622032790043424058650113534646443658128769731838540727818543383054737152991683065916038230701074993624314274326829412848808457032082054485316298961053502872021455782074577259738679365350698485279571159445591838638258823706208574969055605983081068042839189574843952039841225726227082991665772448166947177250328116962135465147821410623947593614140954656587197586216319910910139678895193517683239619179181072819495688426389238196926242985642530113163464690613750216636278824160667536860257681961208647501241026898107584958939052047452237967070687051644998431360434080905236905695162427637919388354894650047371988296776540748599796585971884418210272928916711374440710429770864327515471316793803106156636244474944513741354087653753996039277365569067806348590895019923073037626198430927913444120788147953389182499807099096986380289718587639191220091169815056455013213557756595456682500454934784114715497027810867387182971610853634472141699371702398657164562811297305599606952685431237119591706893003344859464855471572972740462020785952883219419875170491305487346868811054863743886378971740958940293969237060565888692047259712285641139839029035714005177760897423494665756932149859629798232270877626037298310543862046736877957395854531303924798602487069652197568285653061425727449943584026602471159976269002432750981068423972579754002326211783308626228930526990301863973713771569832909752557412552670953171639333904139555313050337279417916490845681110902760177838568004626419061509454960995902888497457534610118807710596440640683202198651184522582564298300887358106321176822057372338033437360684216034789557388030082875363667530631511351361485894873683987518463988458648328340144800561467295274302665291768529664925705124962384743320445877760088103925336139751768909593706881875340189454478713024830807750370848361153302077002222007777035011525903257573047960934615255213845792521434943281383210035423376437224318921848325575660319881588044748244913246436723379483559863922939638332621301238084783663134326472038140664512805863087045820254781669703933418704025899886319260372999408977936103665223075928229839101163449631198086574706041921568743622791060173278582828068547199459117010364566337881168200834993482126901197338351441035678776857242568383600337667040500596690073088533399554480208029070191458732495022318927910114034332411853172878702623905184038572712297096871084814470298043270058368606975063523184859347784984122534624012361056112481106503872465758968284813652855389433580047473822506495507699976876438480316786966583889047320428075880562212838040785034325367388899041315813127879914861557040794644734343666101523585622794352456568958358519908683622333480269318656643967575154110123344979789254433290177939458444332938212335868407175250538437339963755392538347327896331819616703237712583557599429998996012430407824530834296689337485137637037590816836098221910282033781926806526925997506015830932270806976006887099255999795183966925507608596539374141485585213849592803085442748799576472697814205617660195241810453816213742774673560127522300109319048396022784544163788859336656140021002605953691472616848616034625658486207442901478266517642857962249793638993407388971268503799262147522813418358366931993380080610308814814999827818713442010241971933825792254109331822010177317924843392091077578180156461261266217816536290648150191517858538265171622140401086539704217072501592876405413645520609000491820655900937516380973046228772073373290782770813566319850510581006601092847123611957450972930677522617402216873186825164321051456257380441498229633759231868729673995814737015204858386636862690543694493422642458242512554409736717432253647017666798598006047861268988051215078745987900671100341640137609131937230623416904593409558357464424011559343523638081123314217469658926363439367632579332247275643757222843050516420057737583300113500024993161616222922001777617969371929000311446603765222965948004101917214878727730572094779273693799079278200867246704923062291789406607126684731385285054186365319717428939311226926498419799703205452020297104584789460008150357412100383682724923433843896485021665672446214175984664593822068368022995667424184130725825090377452227314155793294672864571655085946546418553876853155379623884858630723177533993370424203320377155669022173636448613207189901997892759026152674206308091058969961150343134368891620865023857964208025382445555360174064239141935463288901670989606128270515325486572562176817172905703593079388179068032547523012469936984594721968327138890925328548269924099877305416266427494669560417341387746289601828535716980257502279328577460551760377658866793926327433180748463530709054295837914658959393408447890428774164817731462444481642743506637349568665055201389811492022445049190148771973758210477420663117300373770898360831712488778699139082088024498126082034469803456763116555924050785982673688156659297572747961584560132978662644842939923419416290171816840218292729412641781777325243733585677731008381505981349351504724405928542669200562877616571013158371233326116577629764682633714752641836116928074699292509817601043722955006946067866095888306116829665525980612326889773184236345354945836180717717007912906172535843693772091211082444124521013490329166570702443299346766833788467234882163231902103146790439642288890275043030556934913221693081174522109550762615589538768163902967624039741610197765312287141095032028770490386085767772941654603660665255089827023423251912144217854007050729920547288986207649886205209597310496197353119070683295950229809738920252396978714761140591079381596368924000137617397511307696571343796924689867347869897492893543426488916756527482794214625100681176838371841144263764763769371501159831557930804698739363304115803736978861874553214393899800454287255423519968330298737780719531906670284172501341621239493785341231482229134131360031955489481654372026067434053573418435343482349283352149589910309805134153431073296632872273845564308878930169031781867714936480558523171522165530946607658534957050889196083334589727115696625598917638096051175535459561135871333666587335879904098566608884875378897045839237247090206038014537593762638535892958380876122679445370742660208121995690475218146676976960533309156366827992342397993555236874363290116211577613185407988391761137323571437753769407834406386212018839514781388142099407713040198018092424200933971494986396529463145682711414913219140072726192361856270769064678845477286922547214266686441926181774001409877103870279599281533715061178650085236924241159402177281047135307361961264378300267772746088644591786522124569385173359607521771297577054668841534512951405501905457095418874234933916586973861524284213135071531823947459392986001352684456805696561542867864055542397820310953762073485499476874410205863205447668467881463218978131541589986433203747686613835270979251499352007454832528527676940883433134272015346854955029651769037569241328701432151800390840047980062719166322345766750283519277589683600718592703254191284952923275119044388573488797474677251242563283256957026348149664587777962034964147043846004596840256633354331477455223048996283332276508454578126169246768178216463970098255126369864252617412687176646014967094743218511973553716465427317274868899212320323716092577233255334547150226007764631953395058928404332356001950077412427958866840891721504720434015118022222508889033415708337284424846942062513601826529963652236025846472199052112594330031423571537108978305316224359041718232014609601076614796642601763965947807777982285530243704982798396205789660491424699628950527011942000509304967000863481341700487070388060321550548495396177732409208696264178391159230783510405208981459639456642772689875752989263500663498482446157976296341657966513924005460637079652988642428441741107777212533250994300320344703820964978885531746882654371317227554860885446973853077989991353516920216467596153758282603039585922829345405938418003126239536085571955710687683814068497424857121974748598326243923527635542214540111248724751129116626995813178696092195687991610785320566658806858447856058247845128917064343314232443565748511887317991432578823758191271296729854495587410413153891376533177114828309843184458074467499206514205471802645208344797363325237141165066160433026666391665479149845338162001926455431368515499799685470292696806976167227219684067055674647479125538284086100435573496087193339938303219847407710924983748126241542932931000513703698832210234389086610490684126499761875703939714586716024246356853450974394118557953438387262203369821513514124583697115759152598005866522622198521490144458964072444426539711607227916276599077279444926385686650854166154762256532884288638545906733487932358948392107368485367571819619169974266289418993907424597624916374756729066617193197331259810754976236963160057011608156693472889645752977647424427547770017421917669706832838417210204104459741780715766057657588013692137442889883322351025924373813422430125544475682900130019420142736790020511371624781836095433600830037658104763869651232614864867102652749980625996773359560454039558137233757456956248369688077697370043807694545252492188390557771151003408377290224653712778692112773370370516825344036937598696438495924406061641758334993743479189273463532946550603878611070235648835801577700945629826855391876065310354979763165705048391631954765162955963543364038403081738945501408463850707619831661845973708549861975669219529238808828796559477386791557396404434216381438079921688885774262899125535813196088407203854464723992555345187544125094008367536092404391336121846059527699086859692076658855699848664319996202140096626542574658474949572776938566994619692332420276001029145132229383995935188484285082371461536554338754156724674810270619890996032553977151585244564155366137547642062655288302309561376377523646898763215295527030545850519861298395003629707048270352484052753737589192490243795299741560117846291801280591372293684563075715229673842138163960302465966406469201365188653147773017045899587748602505239952001951472801944417987094986381230513089938886867222829310776094378624061435544243447218558957067937589321694435551827429773864002251292350400532311717633619206799561823051586406634893400263369971539972586669487333710244205715043193169596317669812800055867582865358061161108787022471038381511729928623145176051363651250283497510181338730785671275979084530651896651294537255752769954636863402333103755023359876970518076064947238256916884970214338438715285486714432015784791191983713400853433295655136618374791363785187600882274668448470930578610500866555783956391306366115448820002735539791714850684037292853466144575578248371214817441098498079392111394322541547406810690404463210568197141054557616932688065549341473636309299107391996885822602630380858043618593430809410524968773478687000772397059636881588198164808154999960225013405294758184619736913026124964784910141003688792037178061907875455818138136798880816859347701685380172098297180659852088830443980634581207412848410031364474892343050903318765875773442826318226231503495987356893692045566576554946258129724185822717635868584591410704980724900711218188108510036644338597316126117445920587890706442161824151348647859313263215325084055708458425780161185740919007433804161216685580667880861029466880469886901580970867330003230369425459159933867946787393792270010130460481828289928679472768981936916405646780609028781712476192308357552345169411370027441301965689918106233364351142614535091883222770398731069851740536132560484890647623562263797992482932692985577981532810284816650970353928167197836154337746637719608106280435052695585187697258836720485717915395897664963066229036934231103025874824400827315802685484210957651774759705735732702342111991633858753626859690996088456970137584962895999733484480623559599036247761134559934749758450927806063326774664923092260191349359342103013438333943100078635073287876071232607666613826523434189804189086128096272336472431037095353367352605366928837186557158636829405732701620029804994644561346801352404026899052029142053696273429260758181534499314691496877959123192978621650177122877674645512559915353220521251901211966666153377530316305484696204646490045209445692648364120751220427715447443981697919669665386376772321540368296038963972122204473067324841640717474401334129636916559985872474164424985534513928357575471355026865306173682012681803599131257506890760306429959286980884457041675716634303327418346407737942325532573641099267570458219802994256244179819510935837469065885868051249712765540607102262595035423900661957058124554695757208628661132049761589966855841063649991785571878266426761414752422019053632173131810896520366179582449187501654055859770862774142712064661396878827928113920241303631459639528648836030888097107840463047980707615682106289294276639010635065986884168841083044285833595284247090334022258376177898065003469047542051689554928426731197705384085675894210791168056193433492275893594696175744044383800636266514244229658295790866978229622504668406515157060425331715727197507012059756663956682618442134868700385156927454086709568865446149975883981476374582273941594084869864331333186893318252231574569279575928781474630774403745734291856338818309192568514071014405222718884601060202294299998062672445733791279972982391192160632672936195162386268642488681692978495027193871629796270344632767600184515084373021303621921326733337187560699493569681706461497590128532632416305365016795531389107687245772037501146244970435809811480264978891122475618485298431646066265415926818656261744484216079695381904472047951364732626542592924381517031056117386953578356766741768261659763126481489153035444526957168130822101022703039624703352640155608390110086795755900805266731358309942105335555166641535298812866458515764986825479359077772131518432378672745279846797628144484657515467219614188328681198839552786190815731587020091435594309607981263090631067983551617198183597378752516694222313393726563930141302328159022918254398678959665669133115753369164700988514801862876734645610948810542428090198922154622422851700064044069088187862158271725808634225210649667921149197953711515938446771737729926354325283051833121200170526653985035983738919315765170325050370885959383130156737778845570964673280388415641827057054638331889348007966792506956957012294765217090801412676373032479592876325963328899994474207178490082241537620830204293162121739101649557735577584633646358923519525042094869289817232070534959765598451343614286110593681170678933533937290139657181383780486278601719013999348065175486609544145557063535276134273184868866873069917732547003007590402279514619915425606439424040034537848689491786084845764962619505844193915286940511736601777634182191922699152056053242099117858229060671271554851334077625180283976740939792614050252181159584310793272534110367108772323236631117302648899897550682882599873229406597976219049292991794901561868209474621819562326059656855323454942861371996505866467076420275691071040640725666377114832401752685164537724216565300555607649717389658970347123412554648379807708767261686508171338648691078278230649315067729313922939768479509534938615501696202908149237900760330955811565800298116983884372023917620881474549631020446359213963296103187904024737108844960864466608228422904474619086144155304626568577999318036931117674712137304576953241787136105906706441338237644373127062758332957788895033215488373327521861147396754586706057544545661179787101088031729286357815152160674498347635617441096423684912284633344161115439663522272936135305612815990355817628389794207906920096439533811796153225324547856779097674818326175119588627823469667705498822860627583569880257238813871080407658497338117527661167606388514612076052919782582227317521025332632735194857348924917744297482044928956425459938202904247211726584452924158213521243929422793037802990563702256419894319250983893930492857441725022372361036348318053095137744604383619918295501659055622879573936297232730607414797061144386898487500973728172479791932569774550031746376344803713424433211290201248975670209504920627823116044891142806413103757893364769554071367737915591503061204385872002499685025025056952885801223237808227594460154741522436439613725614691706952624157573203190497077533245273036197441908194055766681247715722658918402182647095124190443824437405230284450286868212226049842017517656803874714959209415210000110604413062942253394913481934017202261267403651764661007315305485563375645874318032456539040728680380680776167971181539694393668392518753917783519613157758258001153738101132927304647239368035067554466129589849327900905769199993824590473387276127970720336005171535809664929120743985043374307787441618174890394666152581412476525059666426125582095291988208638900622304474174961923556868720448311231676983331884145057902651583946019570917169857708743311698384458123203353498065980826012664209634814303737995469972645756987589250900366325560669088397510852206702186674514362099086759838826085502471558435309697179202151261699804826373870840772653552350797432142173952876682327281231889870426945909741242853846352745417580917047250348705431766615999926697811669971561689649537705590882310398060691027668350044925304612472290682210907115978956847237445164848405174146932115966146792852360622530588751882699477090065882781291357662814817484406676941593547771671204498653508276275558152998347678208137882390807979241565401332144179743198694244926778632819378766209503117418427358376198533886671425136223817337496920779322767596070138191550090559811183968712380847810692929212957244332955579715881347405013645584663205353048520214626841139325116838046722558693359436465267465255400877899663292514804347683224943734931110546480126506224223598063012524769397625003466958239049738184362564659205759869472079767622866311569828127758582526875180652806540806557003422481206393783166561179773536051095298649285614291377934632088969573671842418718316494072215257645988662280316920069763748347704015613442304080303361464739480289187507650472450465510592010837875129340584267338950715184965839464274962102205236158442449087589130880765889996673125900041646772453855477466786373853521701114964848875352525608216091983564587881998675530340575929508256268352048047592241061691704548588533983792747064585711423599627537302310439254625441076377364314504460229727959979826732985131428563357844353511522829155026270162697079878905389071845550378384172372600285324426656822989334568618520052054692050703873310209568643189236890624885062235886578650640555742094784576459247786692824073444927977627607901044691862770313676245587262712845585089535144943981483269239117298813206563725427902041885279404384249552601772699397746847420301236091279183027588188398067050014681992338787738014226927355214712750131102717438834585924787594932154542775645285068179046942071465359387894239069352648208102190781762189141888735613088719294909357015051657836920024302903132953525208809864882994243263796100338874391371449955752785340394310903198831785530698035383139136847267222184643802857312175660618888731165938714014813373688202440140251842969150461155126666988422134744122378245299465952787440975160466925530080174322418583844018332277585206965117107776838170386447371779471030183203394617599272310541500218900056319223498618734903447021018722230608914793673732434130522606454198012573898430308331211484377903015172637715384147436567160494130294319421467215672404316739602470177755964872646012899992308197384365064469108377504461357926227756569898535732336568398563354354064102092763185817722800995764110037586713580314904510360330049236109066195794181531354632855470771821933460785776001708670217295348985291426316812651124765603147934188613683370247295216904820129116406176449003162996212207693913376174682277625810595278468609013108782001018935633775425262418813824290851249114698001967093470162821405566163414218536294059989024833024897055505281668199664867279758005380407508233493576556181267715866915136535524661806321770176772883082363337967074296180504560178679153405367941001660495073859619192247991406566076284148973179635676628170943726310738335721851324556825584672712965748549766312835812840671797574571048924900356861734962991620037607757534238137612930124338693045158500475306656685590279637018325145750226543795608284419177801824097406984966191914224896457353321645972951204270261974467090922072698679092516224264096248941215434094529222114346361978372709092037685028012963809955801810003503165279173723530955295493617959281930497502062488775246638426686715307866071030024966789965274931928189459166803165533207035514551880727230711782835988829155052577013648862793428318836390321082558711871464269998867422766674990325646632539140770101404607527202439413522976313118858097453336227670699461734726578051251997003946635297312690257880757962188173481663350606853817640163025331920937598174196266916124265060320184482329725751064218988295453148149772128046075175443574814525726332136826885015397833676476363696776410256893760331686729388765626896205171174887162830127458872252033205868855259652139153066310853791007281741816240554233482638209898809894146921022841365591876892240154403191822047900085986578023793778679574223628172047892439209066120352810143309990478923787311610103526291280547551478047781047007758903117550055475537168888404504564536699733491217309801229402392120929507914190458128614477666378217637886325246155831339488339908925320870583545360626677908992463790860907636048216342617648758590007997671249204077866419692932012443556710404763162123319607728002594485126108233939154414664073358391985634727974897041387692141391185635817504372834688998206155086936741405120611823278827555764655148622669470114935301525339469796058436297685188883435749309427750942397971858843826546917920045502762441638213011580054846712381321681828015690871281425589478425403313304569155411932709429233731439322124311258313370934841167942282723834694102420518905513947658570170728554595278844141739981116651503047208394541001641169954587450318865234807827098087427090900077452871586998512094154229736243157501318578144139695584646172736548275350716843882343080899245765185971875694713997036944879546465284744753414656423456796486058040820367310939022884552587738289400282077120078171130543510170935209138485363433471286067549969815440831612160587758873290142877844324450936942366882150927560111065970390645904590026149118862380826199882738306962201066620564778357492485530939092461761713919626079629398991380654543080289165833399428161179958577942325422268928323163044102609415294354767019305697701523027497159035404864341403440896329746883176697164105521214698584691562578600867643139386152124203139041703729605029903068204397780791022366920626434770203815287761091161231927369467693069119352541159246377323166908890924276056325831463469470575314781365726996724564726729761559718517121395765502681664258426471123744951847254854561552356913762143416691612698450335276483524569885615417119870498860223911476774457089061389423507867455967770921808902229630635392855046499493548757464029896742382761591979308991728854339494946492491160569926886164672477862052191735622806838375807412713116683928737552890137655766029190902556386425524205554966528008806536623892399535408468847711150401940286110370251684430179496485372100144635342748798389546277361992408896862335153393118486366548536493430448310406058733736029586281939241364265569752903039752486980402900357790184479874866322596264877703049919946082582843845912728363739611495223879799368128303727706861314214505283730338621541932838884113548889576469649198002442452044931852500380480888612426442459737863883579653414490632087581277364814962175675081664626815551613570942627561032716793616528551037828989953463319792184743022280373403702965360732838121921128696203821903158054666277017563530264297332847540210836462182927102467199227465647319368106263856365129857334896691057096298837887156075572994857604087544234447986418209069644514116499357931177704129002279451745723709367443861251201248748745932386521351200034924233397979101331859875738791357438344075138271293744720987895545753269163430884641418743967578666339435012224359456958595697008405536565286002348595881656761397920531140702347486857334811387698089637479930653362178246277336197702916162672617949165545552890749014708857981299823399550486965425175970954628442783684929510298903165916958846673635157750954706024571452306670204575671755466588277771634931191091859771537871205586444084906960251231914204779648094364082823986940954725659996205260736830776375825083620663716092659730230890485705452617380405678677687550300777850038596377309356840718966332468780390734178360333333222728208617864270950801574544113869827586300176611876978653887756833748071072778128448502944124748952839382698734261047012282951351548008447665099586184766998385077232622277184379607432685203574730982257547499593364150995315359532787616145331723542349412377927140558825285265349037265854443941796777511869454235289188000190745428886819054572531899833668945964693758524507121276851011096983035031829365307671193623504287985202137095914775170195542007263844933273831347449020379323705321248017461918503536521260509331471325077725555046267506041487784095066271112052631872451793255378440873490395761852395826425129155274194331764760649909291161707769315850725152688970842049109968258142278687132997298105508684520734910689999124985820337685884793048132088125524900029234266457165025263331982204781961920035386111335006050371405291675909977453897018959054445483873208500006093296091514941426678370099258101431779870589401754301342645902279127003941545287986881659147926524648609220379361841041022736249284112152740288011921059989494713728687533585556428666453417250059299482184109175458095321905784419964018448277176121481804614804301715131146188728950474876914321021508904216566006136295138818131290258911673439141958171625197536251725352452522188068587637925011046419868846547386023728369149975870535343764115921315850310434312758471656426674211754653956265922047090595964576873433790469849227746429414107440845785631056667212354079390017197966794296021075490330973911389262744447483420469719791400177067190699902343767683400180923294692955888297766894168165744603678653053244077972148292440110340613680639929916892328622560752730363015098627585114116266879591866143330074065398766197422790713452272979198684025942267036223169638668584451297485359555568516979636987751927154010914422208241413735943751105686518910276497940990561268730468667079766213035252650188287379064379319855790868011183665465843530243442846550176697193410743828558121228678408713464295604653970566448130598501110240684538356481056410945157465884428690375507465033811991029715624702776955905880080071011662043418956380488076819848126556132928373723420540768303347169237389474799214619776041999080472350279844501515252853644983977739074623251566744833612959643120717320579776038198468338726426005380187008761346415172709198502967773802984571021712783475943867374040197901407025933035772331373521781592230218025191039239641363983814152846822457306396838564126603927446945586671188035068585070128456883928722005907110467422964028490289418510149359933144780666308046869836148989288513073983844133411785557407252827254781138534318825804434216033001267387215278854504158133071755427898848304358675317867233419407286592422391380581710579216684848911509616062362754144708225076573186191858617903800787530664944851054017417530263591943730196087137922025879711591771443698494364946079397907786983451031015151441582178355416636094939820490862032699024843078332392462770888312023734420426536635276074424633092363507634257143685528896206020987389506688108478020791901253279911121854659504094201702929928297027800856533809235572437959801334076674212643851514484838128729390272101654611899849500443935870636751453769044265067616619883765420985834999314761835376360552383323091166210665693400662418330830000107288074687547178714477148937811782604193062299819522248734493664805721001738661228705782807738331757465091478118916986541599017119588529351067080528774023389785562328519569200767032194500482631199744278417241787327949656414374025138344606168247338767556714266321038574263123891099601952196999241287220079606065872900409375468213017869396948967813628717830909653163531074527728287248092920312417310586049944927851288748516601945552290322184205744343590022973760719481033103805312737287869398253205450751738442070623310974124368874348112914136220342065129444883521025971549515747377664097770549188915309967437355664527897403855363401522436174012318605282815173973829107220957051720187242889204376919133106769652223090736339832421751490012993915050618424397980447436234626112407806752492337345228848943845481558351981191140666210734061533294934879920976999954721226527528763292279620123887643292889998130128571163379335970404877522359524323527614025954289720616160361416740460507384394699034241911012806327216745710647164203071393894638837921323555742518048233145727494672223806754222720944032028018866231525969804420815452247109692747836839604440012426053673861135841429224687050573640285473195938836231124306715632213433860534739228471633163912525695238258766382330775368423102327237470400635562362992658314158788430568051919395540407604091032036921406985631651260088496283055394381428055345578202479660233645391047520050640456873289296152214012727411575002727049702125025226333109438186861645979258472620731151077323921116433168273497438387442594665704368093172566394432963690196228803559199632938504531948236330869515989412070780983328710525445551267163697992551152115031618424828164071623286003369361044534657646035274236016426075864519300204853190566410158956046231111047392280613882118262082368434257280809294629121317404353758021977970889463449912330142156902959507858216523127075527922352252977728283560552551749706122706478314324370703501785640364030260215328227759309691964414431819306711207843949353352844792570291947348876968965726159407573293377464923601399353996291683859912742398700776363465589698169769382563354092009588409131645133174504286053725402510595925054614889739373263655967401801436356885744414824721116991664976350017947152078063579792912357140622562349663737277348087802540098386146234423837550492308963846866210728325101393322679454983576110891856756553603440897073833943986376232079304580230942149173644831099050098036766850634008503220945053697596312806871043604002655328667164369064774582736795376540403815178809579975170416858709703287025176148870199881165122524513070092174084726769827876191725215928402327692820860046085021977652298867921302739816060998342938310673991509675077740065687626048040604979679913848357465477312458303250440868744988932283473317235415283860023102691530625677751179910607892084974827431097585553740500078527632507033872932106026655572076447946933944731762279780864826747509340379517200877738367767325955876644585307607128620042805666192771434961576667331670003324992826954180357281556122378879013466726514692923105397405384332874144653125689333227597075442749591527774298110861083852780768813856480135859540086791149530890552761713166980999121351241659009634930752197425977473948842159548250249873728758445437193124018159361456783964455412786304981617120934774839910179548443177198372807838582345287431779166737583981358830345100867554477140657635097451356105470099082020775125191107646395484921394733161949444091074757096492750710784571377348207650655033776578466836157150125043485904671554229722635046005926150200424604946362647494995118505490404641886889187832938918984772876990200489099875991161095765267456483913811846187287922145938683173905568908044067053979318775385846995075158667892283540932235631701324621582838128397321937350999931297756285836999186003859854605254121602137219753704455153278929503378239982021064426283609769945452092121093709447932749377723717321033431800275801678939045034192499079786806193063025161767043141805661440982580860738343523193004375263318871920589503954237728413735055408497467192167992732277992290890999809644103887447993346505527855168481367911824993504025633324557372179680570977227165814586995739066838087242474303147340544552237028288690841968297970341755476520681960692536255156817300186217502987664128743144428465026525205273654393824730499680900982974591475695939218712412907493770560893418011109684889940744422924140944213877580361970634454681510691621819438920376343087524297475289948862474126475976409535939782340088752221084765083817876378415478590946056409824987395260347390266852397027656034854078992794184029587180880714411174674353902051296451466219396435316207664424737695698790858864450844345097105193527636880095575674026393298663116163122940001234074003840872057339081211487862029992288481538839905809532926951786405612802750692172319026459750564623518906821989823633500544532621119636289684246760992821738997818560744529058548778110880164142278375507832913515903984349850620810970768225686478279207752462555261515068409774805522471130821971475248170157321455021127972314552492443268246830686859810646094650687750720363494273916786236701646671523855898370579956506450222235214676056893558042952567901956564951099454134872216624376811990555300853442970333460969638140104556005432965322515838207207693625325607860589723426307688645533422327113163216843378691639257958924038101745343413354958624346247063488157259259059082243416900526661856950391258541196411104426515146666081604164145115532776057440987035068843426283831705028354419925978123396088041362741649386943833119425658284727385658774884077281766804353791788648648236652655146612088356890837684366954768704301164349831954118799074360615482786979021033819025843710271010179158041321705524949239904723635867144413204196062517937050250162322490244553740194944783655687122989024431055099202661036172900855813942089830374414006172072925887968083495869389390715643767037171134009293249568984384891799873737155071577634264904791829147069062809007280108062487470813677603914175356225420948146247217564579814293755166276269820854001220239130323636842838425639061472049305242979097767983259659207281467518761944947438315507804553391621644565599091756045234608929743635819227176196928466361375097844675655557539648017619880944309545274248541178755694163976646381551016822857525567054302549895661769769621031686824771582429443025312399546312941114912027173832362807876550786917623979415168048785066337038827894659758604122935629023431422057509339330825430539778514437192033673302734053034887537800532127016164685492457754174406160218395402529625500673608501531219408919846501387080099952480741217831874005437618587799825343344827361757377905701722604213372217950584351497718126090767645450587870607594475335165836331831279762956415752433923104520074138776168447375642992112628734531190062865868905631631338506668276992164202583989367374113821054421500927406783485192575004853114100076791170483748841904058102155510783429726601893028760937530515219909529281471921403345463682572978075981364426775841291176265683370287077879179781521200514897173714448242848658280100556343745327038858119356388932275154441681968341467335243659437859718111621109961910121652632436503668236327880939671574476781162909964547550018341748125665276982428652547553626176548008514454662138507075505269042320118084741240898518706405600706665734780076388308880512654750459769246704131932032115091285410437660160464985761384905662773433962203469138473338966816557567619720831284422266857663319583500400100258825522890394310182141200499541915884736244804038105200675946862298927027316626828399624592109882692404559820437593564794869005053420551774192333699143602726605689961869629785706306454586854087882491149360806777393946977710510670640744807415640468503908738266433460647916176913654254950867501227201553926303432703349170095723672578029467159570996648896143747182230729827498857745348920754599890306716492316508629583666878605244532519403532952472197209920786929726408208565898521769129078049697567434329625334015459050641400452181508896254486594395510247318734640172903566134826295999945789879013832460109474922285950475075921528354815956644900670602241229742961497675885843610366251223594144875159947728201502393869768062654674481918947889004851123222764743652138577383081864440162146615095096398612001650666435382990993347106581519074187213370328034674490542960976018240809111861043017562974237075662725899949565453825088510260028345181785693039997776474823051509510662363064821766586333340329676851911033797505190800022041016229169966169408484811780090158522334741887759929300765098964420658738394012349939155425005873104826537258520817736216736891477949834681550039833167006789209112429330074700476615507055828324324710856878851072216842120145759322576570991168638859180835269107446257579646647916075749588258329700891589247873264934698495721201836656144241643797573546568681620636521383200577248127234501725448565644730615504802412249680570638360232570886630325101220485810826734424046595519417641672018620230679950390412495478342915441619681246086931161644330956666541590122237179217266275982665938091471804973387733693657329164351707263714126118125588897910484114215081257864218447999412917764788296039386528879782493372979514891229347802203126010645301346825784636051438088725222930972772499345022452389322280082755702455894040107826842761025925246251302261324719256222759633100632392188091595863527208401415401205676198876175790225993770167248192787214023784444891536247122022982076482913767129438476190408214048174467567224309337715099442522685147216061056041704125348004352394095930029503811725299484619778488735901043652319616318029517941965523631529063326239372491563671741247465410665895969654069765377472890615173373973952570330160969646649349090360248341503464773977181223346228598839371758031721788932120309803915655949847328957826679297114982102067040522399437533927579934631296970871274991328232236257171118488823936203869146533030023212892026410813040247735772488731163790035253356911705566690222953821718598713448147077379853907693065473181588285662942050383285909151700107759609718697398866409000252884299637493480114199352763497412994955459957400171243059197218974036037142275574748617404205630243892578458042707826187041063672651990746544412508392900893507615189018826409243309318866915804162425369508987786125649194297292800672167118548159931536485450374287797545337050890475873030040306021035047146449305917891339701097984621781991829836839614284067886160256719376979233541529958711628598805444760533920075636554652225516236125298231580002179238993765441077808798255971638007631055139704517167432653215060450925611881555141794340408494698743407917082643779523909983748934562919445428746089947675717463792466571105009335221225731633039867887475704487843692829465035489120019061148323892443988222489688302748455191142079733972404608884942508049539189963423497012946549031730830089160611953845706996538718750470195628529238337296634986896860846107075128653959544219415466552227746046968493032239002719891035913900441051966574435043451251378547629204479288417114533381331209103991218393155121194005878698640725624674317852158712440204074117787656871486953857765782925572794778790989506559299776234437811296675470018915178028218080668505251842203802661457560369537105582078993267866167039902003420224934614370023028624325910495578898974113515359501763544951246994319224874080176983315446050048771715344133583926952176644198486174376838539107284144059058206673965968429336941278528446676454628939336313701599873986441579278082562620728910543583233815645404137416884936753110059181729010151215777731889190471355548536325869640409987736528885880879901733874727504930839804631108531906546375536188944811872359872815617898085056788442264571678474847359178751399677392622942712975401709974174425100866616896338047493720983175645262741395719753012455599058564918270820183998356101146837281866307821661877072408859538555851907848856551315157935793003505748546338274157427936036228333278786600882902394610191208389361593356774647960044120093655645461191501158626691418234251170244157345430348478013071027926337467302060257551273876602470292157595494753861082332030346275536164982360955000204496013089249168642675495857150093524647690469769955742787131525338827601265909455329257628671636244849713735012259092853642950449373553710350581205583881146420130045035731269565671267452279712976733201220929357862923211550842813274457445194863461936759519568093272301298878268128951504646671689338951787797820884936407710852693912145419686684934373519158073515121893949484127755511982871109172684179908702373727968215624538503683227137189994409199909137383303927369108966409851649755877422516789722463196629812615886610496029634901886378487931623677341382261868782867882379920671688678095221731119571490149844904770539485514886921029706360644134558975272215992095654872773004525578344357278418131791598658541141977029243714733751321989910851030964039391728718868361102682929566954948501973926754987439207304540806648924693388018196175859020283286865517395227595091142294833945647175255708539989231989028366265502235470910346557558125816401486702532950960004118874080757216487476968238105405525568051986635810158391836480155847798422224424358114869538192225585812249782332276857730045228368361322255289233606234537980981392986403872887109903199133592025915265694231299315622236944765313891157827516819505032368614642641509544586604955169931160182432948137722781798435174183404682022320960757708008642581334926780669587376306250790252405880761024515149679074078333318739870309255032352611365198774666322560095287266114946772968304928927683209549074203938594676059137091676999285017123688093679897829182046375653843935061066928308235513039448299898003463671387670071296455779960702184039773449205789073224614970434838632837761484845065832936980650551959770785474042162938783899952762296608652536062820142741453344606782181006639941888617489706786478557302445774404629449410081737648323099483943394162916531278149863665737164167246124451851083356768908182187168931074325478556948926585048268838644866310593175856587290966915489962087082781578728486447991712721474617887653775218825019169260710152763009909266390660619399161200504521441289848586170947654201809083309796989111421330512909645444803004990196812845864792227824854991570780415436997936552754143537484497466980746441831513424739447404581657193267149229678263077376775195623709634917958766230300357836189251656868285021204350924634181843259130064512403726459231613201454535461652558369189239083583357593956980306084180534215056350962408187748421881631947477551078617328897720138190599705239536771744394421193044333691017079230893678691152842385560083974298806877909525297385602967611264273862259383359125322444182944513866002796590401108153703434500851563573803202629176572399959158381077200954741881072404692785457814795598958657886722766773779355348928445140551893450846503333774385556659188717059967057036836014557914867437697302661021824833618865324771109417056761741809851980367456004448637563109054218177220454176950966055198485895494187178316320665648338437315812955810545156319845110200330345051290029674987969544645860471109018409287697670217706299182819252506669237063663338332817674382444126283600418589235442839553626244318181042050100101283837395107280853106046314331998566923381413445426521748392808128196080370074467844930732371230060972940440038794437669015582259913674977846767762133464304308317590110317328522436637760949486896993013299807406792138592452469721514216163704732138264199647886149914374664825666531997743395678592135825364096301770755353182372768460533929727943176223461912256327680181729969763056802468905879662065934711018773137715909300627594150930429178666953923841185090545895788252121768512689223279332525750046050910115802532049082476773240677407604231531580914373339648225541346197297928288007128384636062647689743978403327805969173920716231791951957718288270377252258185054913246530356398407683473651355198637694411955492684865606835126776284116398159336850253790334743038192775205364826035631139951010321128264819996202666985651468428590141426077846302345589079840041479509092906061780473290158887274151981194325813934181533751341225521123032000522466994206534100159791220561559362973041495117176334066052819233436937092306017628414505475159472150290666543868668530423121883524384883517253805740767908225445470899692550308792654883477342355345084689038724272903591782312854184442434219309547652439656144561891762241274014572434164842070811055616265630590551284337631497042366900202387309767043909556759807293120727914607969341319421566976070178138186581949980141046781855298268872814164977211415039959452644765989061736051805104536992639400332914979262343043404505051237299688894304007832619573032993863027546284446826871766166050013329923586826510877466495955871308159868155713955068069722337763737696946683753159063034622402327316026002604874553948751123339265009411589054424577759721937574919040042292554572566060509863659025399140514973837912303126788300923845827270080309397642578624430827452914021946670026210982261420968851641567867601413440088157496095944261350894313911240872197905437531112949600592422114697946636443478885864433088965360874404767458778969852014714322741130188104761910530960221862975363555415419709429408261933351081513832479193551125672258857453630366544117706716994947875796104489726326736749993503360194616017055423921117629004939384123662550784428588015922438251429384340407791424464909779464120067609253273834838338762027983809387365674157457932614771475980437283854408182733150331696392991897918521912195090507646081150976851940861161461368780670709949266922961396904916493040669862621496854037910590679273646937882216645048478972428093567006442794824926027370344051549629268613426783932325658416300416229120723343148955349060141170823076469003995803644253297701571433711065329758681877770477012090656614040462315603173991609794932270917190815120649135424294747883458738292352128661832143864389854962329236385817935833017101915626587327180904095123768689694049207888073222338015261243804461995943376248800169866237360223607158746255343363559916719239047964167877943511248443128257117610231033758694177868653702360817721884326043294691725766889819859999104064974602017576203729589662300161631423356564213026289621471289169716929014400170352055528921462601020199466738696519651950748598409473398730041761414617860260958478247397079738458278641170376988428775701634011203939120486231990124667325609283333411967966750164433796353426705122729153912007887926536230068553190462903763000702182138453912728080270056836714009743170914197135365257810288082971159500540208384338237105013938740798425942213708193234028772342090553624081627399932283635874767833357194830994734100015118646823229705358784440700200740679728977276652751469237226416454883784740085533732348085956581437848241187410896706450304552616419119315362046668844438351585686626931891209061090755569900999800702185148909643129781136776411523891951466546286770721306260974256212539917374687976934462134139820080600041058341114440272278850081338848877656558603354803831325804597034754899389025201086723480253051478047913420993737290369966938410521165146510850630507438795238723847179574325864102044450183246161146473494415908350542474132738359356938591338059896491733204647218488757606981316311326537689311017473705589360438679389903291728168689328811304542789292280459052254507791336421256153350509634190550997862200691984846846624814982892517348244579469520207421964633570523269844427231236891788130554407618084342376371929774814686755715785074926270090781936696451353229381455793921133473639396627205119463971236190113064355351627348860721617406629457825265107804062297982270406835609067667370044235305644352186911705879890561440081643366838676151568653450557196031184065403794112226029248387610824759721536912221719138402814052524401366907943601861787529567980962364474738382033299208768045096505542200009977209549806991863602787889312575063339600339260513504499541767440160774804733082392901971081678513868752825009478081838695157642880711028658742008474042542248239795432225902593466705609561184811682949537999686908397180823099471840383971359371489637125335045648136220158504929540044430692241678926082746791040134259821844356697390467283381397233869572704516523190244062847722356466942649377075164009223741826310709787390238011923291735431905318770699259265791571143175076782347337150649047539619385146413874239180604412593478509495991307251912268256650123045343915808694793392998444990462797329421933291090197259893720688362702339322932462723625889398778135809900267731219924426273533026821194517637634093166669164201971051240859893944910402257460980370281653499841093546822055617749678582726570903340432564017655147517578607764783295049970269592012651115714100612398444678028260294161657092113861987438484972357089434396140055581922398856506924658469610402189715487446961642682250519131765182791754865715032764900186158911396895660996066917737908801835814133989988450667602529831664167049944643217474146561829751078081582840507749237847563944135890306016317765687827992988450899652372701102278584451357657996614859052854880129853091488239147264402756972918068037383326425857010774993528138746808748506041190578732971676374771944801896435976735920512988407451954959830040360107774617773434349003955878520914020008808950592851881315795668767685985235247363304969178870992426869722193237220607460001925516361488150542429012007121651362652282178139219469228157394691064992565621695710264682059170158289620900509050746875139784157740905802309476606685846201829463808117364352998953655963917102849648926505740306506332281185451803423187585978576407472098134601133718063049464184026218755747213043588297733520541128637867108184649522362536682940402293977136763536956301476168539871883630968245628499141764049917265146476159268071745438186082207808472109867808775222374247197721881145779886357895439091382399959464538867042018021703962759383859185528783111532781924091875427397171092308779953183905677848055459098496881548949107863750670336990146474340465569451635306547329012515436075215653779905030249015172215927650319392649315464532508454951472759193178158210068551671940851237179826429328356531740756845126724240678631624044693018005868323971897553579631316439530338757918484578752028971147543457056840870464714421364355293931610983597440592583137380858956999030201190272581478378559032945909882780507048606189748079836357361479425411434128710759556827387832091840928016396832246730572430723884153422392347157375255624498123085224467933457483015791963328290688002173074845296172838250804120200402513118397367356698928444751770040716447561269854710823462078278080540627390321593336163095671650265205625130347047176225719410453024371301461544515038511573793389977465847071378341015087049493734837659300670380257331501725037456984352554419422498752955911400742832242752389951801314061253546585240568153822115068966382971471698167657105694943598502395828264784961571552990518959832730816098398435333738657880506905027946505459374839317536918551107729785398285614757722558901745900836384970625404180101647705714485893788403372929348082674684322004880610536265931704420102075431245552382262079654592551936830674399209042887101373583057176895758850610887618645279388283214511174772596677078339682710717927837950247721058156041321245303684697079998749695010729905364433693559741963859555953339610360982502966074762176977172749152057336803268164536981788239228902867662125633526571354175500515547628935288699448830790785707014784924094160263493650273272271960984663068639451140320911593892352504620822399327846552776051734551516920502206509840710481040041534771247788682990452537193623841933830122893778122704787848620449229878839663985282758950629639893212592506731996306313637450911617443982070095697417545590271092223599558087282478029437108122998270949267824039617947580547500404443303431012968171049049738953662337531197327802303081409470222793194276197761933346342302895360025870764189444794701541690778650347073571037585608248858080997432736333276359444367421676257782960875529716058562224742526983606709715432609093480276518514777204329646953613480526100349841316063112974769112714809168843217639997812287499399477854367508331410733674232932945400966251064040084266273328439989649991115963279108320705237218190890523764464443460202537325427927916667519972060657834403344695571656465195260239714357200052532048093558947506221235301095942938923989170933725733974116613490762439078813355057716640913787126519315346040827490611961546923084886656933243784830395212715853365985448567651954963059938132904782165630055711024790138232734307163793751911911007458673939146150603464360800644900758727905946652356325477900932549531402603995686137356681031108734032403428836783634203315615037682720325262901990047777694083752765034838552330231604837338933305062988344698304702721507621654072776379391542788075874482188958131200381158322460936648436976687811536620890597097999121969914418335828861388995399077004922231500050564557028186158315043588883947039123294277266824379376606869947345906553083799871180115288942140058028664925578080321341282973996954584814823840036057069854747828077939455937013519255177641469259124906716326196487110524463361891133430405628932594198516072667706049286828932962121083363247273984953179266834871292251257390231345561876148262016021391169872523589109285258531913424375128916188565524202930125079834003901653738485574172329647942018087522902616404414735002157046254772997675400101702018532338900413419856948164605259085489576563226643827571012790988783129008900015340386584514541590868469819721472698099523943790364531401965894307980437474202361833656142274280609073371863201045838625178468354362065803596620331684543924627887842440527024727613628637533836068885437136947584465244073653276096470238186850241438846283450415249551376754905773886210055117649057481885993603071407626250205413452982280452698289581750222425028157234813340292498939211026349251119832206184228303290804060395548736332123986817640661249063783306413417096672889274213442418445332105453256058393887482889557157144277559904296088360444051754363535381825691973774273934959798289478910998795452651513089318761436678190481751933091251093406287902131509030305737493472386082879249017368754797177967897876266698028231341738165247490017886607890281610417685352495617475587700778361845060045032491897284487911970892786777866383065700435322213194429526115643469742301852492460790789074700172384902733759756621174386619379368463288524739614073570058159694629780441790386314307625997039276113627684317127032247990519720059751270399824036343572754898967891681772965974655827864546959063864083169202964329858060225764562208243461825819708874912037177413813236106939779503284479998823314505154427865261650155457697443131439759779616678001499620056672234769791740378020805723906413218206970347445860338493318014268667157988435073712765123655649720133601732579158246892302407389806058847664620891574729980163788392116448604659018311312838807288152262376990735954390157794166948643861937710066636865339643818699911194253275918732783798574544604338867516975429210234147117044102754960694109226641414042357025998308318759203513404029967869997765657517991034403150855153669509884329917212076590271252265651969572246179059405449032080845898204781571090292443462623022711133611534179298855728378083619870867884066812654768627667696668022057012781706627778741640658109208313576502424502921109869234401750391687988772814296124565088124310057315600580418499485286372070647262895078895660049930468204982127710580478784352717704096647702316033505679124003417530948709183821003830895962962974416009839854293363865132202021658219407322648664846589333703194677645374869720906383052669565680132009518193770309007193091410059449825114774406390428604014564880581906742319037159801155638959125365662046160286876876272560849665479761547468242526676193905904347881521871173546823215108542990056986790029825319199987806800104793409857436006347035661808374745826851703877824368359888216243220153271988790749849440154090893725567734821762170467414876552458884097702557300663273434153136241136328484648749038403739145293852360083203249237228721911458948886455502959554337886583101696576301708842072311931036439565759337239650823003321159549758290825342458967432482463663804561978798012796397908796554508443906489077990763688958295799149806181847748171769808959657507085325977709958017276299062528658884472424476509514353758431512409934804016928659467041032958091049462277512822066677903593655425374540224411226779639423306793805015583437606330882914293970071219264470664896083306528680433651348675410277701026390176774952039514006175029258399904916827493958756211962322880921523494559780433993105139217920334647581927952247748841430574929002469456919759273016590274741977605924230653500809428939691434091366868161533776326974167708906401011747282912050627814328727393614958764922469371103613750009603143857576456587175235098616961730959686353835230646068089653538535929941642164792355930243516390291759499910655111660927149387982578454718415984558914565315608997961651530754715883776896211332666809489428435965107559232897505976935027135442891476854562919846725891295886591704220064591465071120451865102799325375364457336648609414400724408179255438392867962906804988253069013028504403353765173576212904431798326295985036362282872911536121951909057872813212798544679531200008972494368970608573869077582285632549743640807721285416673415707987770602625130971522063900011648136605426468301778093497795374426352679100888720524801403526307973369530782022857237951866494888057794245293585908775687457894445081661486938190025859331542465986466513189798078757802802037004950893752082108368426939070841396365009461559357538373412473975751361308593689546356577404656465148030367759335288220853888056910173021675282539372382944392672905678012990956429282297984165245485839003225414589910859217220996806864555314763292439347585132634257138288387715271722627976742466553601809520580301211591064705678971595739171061608117805071458209837262279673584815212872179792497939131422786861637523554613203072882126006147089817429950537282040493433309107781771563507004842736716705509549658800742543031851456608963932030493841848524703203254734303548087938408080006251533256986234033924168107478098112163446893393465430228265307430212661110160198547543913929123457645846223572077425652902301821170462678226936322174144383149976526266705020408785114746587594946600942112757894457244188000521891305716193047454163960059266556286903421459118945939191405344990710613947788735999789977113868188465272063015853791257009326956318788598109796218751396099506148798383021382333637714838799222110736675063288708188023345580480251620406639077006014919670441910991493476411185101908430226149531366035127677260635652686293205672566197284732290630513085562034805560431720061575183679427665636276942011851968513517036177157637593689490082631985932028439000127754524451058828024067454620879154775104882335821267862642537499087945994929392505634195259638784414978288095964654214796649548244891151254704103270936070116471547222503283653816393745409879216721344704158976479306151019957962575566836387943578199564868050195316386332639273791322806690356579829178271844222843821575657827812284091001958395265504679131983302609246104843886504426503001231119570689730388457029735990169116538811699567245950745525767789521601770850018952213052042978283370610041832629599861151723890110931434724609961393946205123769047409604645401314940548298975573718046680926314242192900931899285649834822976919771431161695176158002089085078711920674413423279780350586365661692238834381739525789839558291378376231877736306166200645929163321812225892183648096152102855653807414327341186531497285693141897937736451007704737740992010221445099228725092318909222906884551605447582328430691570757332699011088120604789586155676558303546607437810195676098482517436770070675501617219233204168162808211765839446030939609556805839974128609476057433079460041735886892281349009138954717718165617006677232511895635897788601200388994052436446894816430884879774378651054795841318166671343340684215804286425514838450865243532032641982598173208914909385162611076965310479227303837620977133791242983092248569284606961062831620543557613985058022994805750536124303276447554073159563324079486007058067737471610869124364116616554532984999402351515403301140445875502852137636925204922206353811414971841639969554219586082013295000439593189437607230918694024707252495990477625890312584230287722992634944532097703959879536882362651590335303914838886651741634285120175167521211421220955217052104144274667505661997898114128800366071441712871332690122290645095829335055753710756362806554105892280147959751197471486843560461804070318027688317165195727210608333737693099408956721026640996591193863479102382468232676932266460023431698592981546050178076195389096740899315016835263492145625578579760974317433149296789480852814781869872548767703297351348213128706550350633097324263042950460388268860575781227051880283451151752586956782851957465681152976397283712696837014661110267551581428559594476589569832426773383641570712784704879779400550545575153134999832433701393166159215595946518325957781241324793068038845141834525514437147087211275979745199588367024770137494754087377383076313897861991754273410776560769447807400574178122183767407353579734992221262625004704586506873379377801010043453859663561216497271206145857987750829223568939752715798521617667687981181961370756650538669059438001592305901980100026073339392181586021304773057037403803378558012366806123749290199438595870564617871490215833730701675403068921325627097505018032911324493805312937989790650753248947424961237217050676666294336337304565654513869213887703443556837535441034799582309743489730815908882427893077636376668518545234432837661253485600081348168823537146846380967402895723553394144623498286959822510710701600438920567234215478034968697025892140066006015870116862711676302541843094439412914688767854301265187317499558141741767379882672196238413528239933729578559171994090015805779354877902199398211898628332915633909563285783638918666040228049060714689700265397654872770687258271583055991592728771048113513864431279207157820754480265637951988755652416111075438049892731608273146653272681030406087559475389533322494598965579957670078732637040250843343766170119874358239749906300340921139923836993264280106005627153690942145048776218839755833131009438116170349879287326045973733324593875652991592907674636223219441261794237339283763377185641529261991027240716389827342657746380310750346077690997883009603444806744809496539224838490586615106094169757445068363679383801674966404135167694951004945517958100612344031298602543849416078664092884663269049488906772244348880167694623537067486855812603019526544341532798685567712536940935708526054860945526702844856153646259539542674490451847621229936103740736126490243856057253699612827671066317818178983575052291521285576928001492019286336822773818798174429681371223820089932732500699056041798951446653893360649185149800817745126687341077749647174816878510152531086486105179485548344176592127786482765029886883691423854961646420283777496519040396952324210040494418007100585439667346995224455190252495973492711942622530729343342453284343605884392187082953831498156689333270805262372665428700694134966417967060232889074263166202790412305753836679485751155416185893745504933973847379774090553465024360249140764172770734420286531108204432498597107784597387800322512656222922803443801266294628793726607673529305333557169748131800847190860558672432965878213926597411253003600614502857766442137407334780327511726721833353494700150608427421956234785273698419810283018654429865044224562795921817852386517415516819988415764266874954292675659681842274402044367743704538208353383696603338844012448273013999295196940271518335116251838951702121219211622035472161411119639384728518973383220872046492466263678710500777262405260812133431045226882424032086194042875297870469110342510354392320698783909520892446952927242240151142296900896967653294560433746452338170031719717471999883575545312257478552452629330399030428380911304026141328780983436021443590821625928859790756109480202244594258562260238574323318917029616108284431108311831439277982530546735170897185342603157823903755715982580449867205142370269766025706542702651131801375012256076665367013059775918118228025677850123524193084378023679511902080709445238089610640025979970964150829759311182136283562912415211687006531423549814141385418518668900443930537714224704935702718032136818666918477142692556053446234139367142085704708626002001908112681344570687470561851035170113964004340431367127539511825011395688683287249995931431864582949209833171618387151186753328730315581954042561141459711692767775095279446018747242982972596916029800277385947703007622249825813328025902502298078579002891908867024031887604867169198971793014676296103852032914915804792148424982819018931865879881145018691678594109497607931634895212593714510936043077575718735567759010343760859883725116192702464973111395282626321254290485346208372867535414008935580833354498705885323580992983472898267697447487768158592372106066539283052927604493036058583883053546990997928994260066046807642648233898776489529218289366069387387109485912420421202681081501562772082491281335013037455901909392667742344974635597948465417838424895400409610936949101355350321773236704384971365394258987670143504259235142275057809418778627364531284292032444316397689154000352463158503645370512950795725635418557462879161945601491230937779430804608448707153524813946651425605727893915610977546830194549056237997089256686338845637088116566783036620177289588450360256134944827950640611427935646099032204334925245561921873251188882303766776962740802801027580378586375116001249704265784564742523029603239948140874678585587625102225818634341301748770075404944630600071010494647188096749846840869158721367135505071874579545853962371374662391028280353820286703949624638298798765708321547846649091042607045949016627549557835711803171382706235168631520397651391782703398183383405061146381754142459145762297919405195629439782491283021362392849074806791792946489217918529658684662281911438777994021321626930085890307026979838869541662761280033454003426238977399847022242792460293010144353401203853290102314059324835055647784647122704889513273402543235342136698065556220764434054369838844184264411434278634275241268031169277481250252373869475540140090171760567853034506111623708361578884519051810820310775312203611384493996410073900339254559414341698356333025065721944937300121012573632907915671751235622760991485274657568311910491466033415018929187663936374019540526528434474829223741761084714627029092561966784092282897105511113629326006557317811958092716697201870509917429125970714646507057767674071583624350680873013588609704039814987345054464301133982937981769717888153337670871738011376757275877584887639543844590641821023122690685470329325160185911403594027009121672424099991069511111308637613097760906605321666128400318609611026713012639985245077643763513897104198830670292488141335259593025344731111791519178181323795953532523376846317264055696402795027227473586107816213420567522572449394757330398265196142606584558087640738672308984589875330132237046335345191114399414243499058538627110270661028836732752908295966247471700585532052273123190899081159689964526521223148076482869336256632735537509392901073307632350480696400896902902571608328872284407908520801990226603336012964153259976556749150732502124867096571920004564498788249844396024009033528120015049542185267492580193040066756249243469368381904879491882895742804731994905477178279867292854390569072827628605293390449257341877472399812669348658390046213453335172267952227143282250594312450725092220899340693249631322435639697426125204496028425105387505425286914823058636904654016854655722574142941376219174317214471358445374123442297790870982741641480413615045496922425105825733983452331241730151380818680531081065331902556394405658313580045884799041414319599022987296909311500488865473837072359091184419460573385446130849755706198093627823100061375225455614541669884840483875803642444223350276084861569563155099068995754118727752103674629462015108541205900008500120453024319428792412346241279689089642863403228965028889675578125839814720436220455127075007829773572369356157719120810289485492175000440772166126085358456919444392286336524321776447446834389360660608812208442549127490571515678679627102771512482757685365879540064263726948389063444651448626811673950627740657026526431122268943780514708938456615635640971529038829204087972254519692654266095931555479509044925894575479813842363259091910247364027352464336829376871250381211453777963539393121972153966843279912033485273961937130467692947916272694070068142714763984993119960990479250731849685407231627119771667956716703280428588824930710547548586380595302761570004353152209253056779912199601320889332444227408259173307307549111033454071679115451887339983277889094113046986671650347587508361471947465633358781415924127838309024653336588386024781120510226771238588223355443127994162577825992378654144439142131883165049601910188510574838802602389151893454956754752358794116598892769262364007638104685360480689788394695841900325183754378631121023120072694486871940882130524155545618292935831129686654539632525178156283148163428276258697622035430302921265561915669850938129051883466560917665121129468448800625350417590569573808649135112276315928366468952823636949163777200024861893848409045869642545578128594935540013671335066832293264087856233523290146941933564703619556911732440552587121363519334794901535369192807935117050276169151607700386092515780308449899394995804901231206322790113801383314539605190519914868124585821821762378524652099577928509409202048098237644652885828061408051769049290295171502876089957081330554612579499420368965674239440472385664548672783211008802735826818658824957846953193793982471498861433054471532035104138356421863388587565207856497509667993700447725177248111584912742450321938041313446174773027258904673402659898488456105216998220227204862923419109954790649692525075566175667227058023076710056023235124267445421506400769959251921806423901189231753717923328850504516794462422976169256480240794250781637502766550090254983322229147473839524050793796421423731253525137528745914686189925489391155186472588746454966300226031173603438629054596711446620139212794456202428869290447084098693785982981482921558137414308518757365093549578151854208705444780363160514976995777064284428097474674075169767877935741465802321017707302360148265563135658198491304298061879448975158980289367935437177869684942000735934424556600814994183173174868364960402059790996685268866184808150026895103267523897563187397415895221464836926687509159312022050039927719528631690081082114079780448106599359073735285284988023588093801634210288491351867028302885213878369287574925953035424292862591519655801421501788366264648560961257777262907506570856252494650684722793711629718361580965265241229003513964588333615149910517596331876030267184107261377349260993772180307076945561622965853525089301887499656623696091817258222687311126119594663534403985782018079466828598789218360269774742821786166121750014251688873991068734428142100219730795662732868208906380968724543468355961387565917461097569294963752253073983137143323550688628560260641371611916745263092901676694718240541685525687216617462352684203829199763923566804449304044739145701072350409181997988265198570871752005819622307563577023152667398415766843139492783573138721511285925615407396433382632068963890915925643209352057300497096853153048904793828471364125699899306459778377643852615306100323070734723202222039752681533923529542159096837829218639417904879549791856386507396507808883907483454274378776207885750151402786400351218741464183699700111194984345383446017157584574311981716243617713720016702449511836619441653483783999275023478759851719711976646688641533538912855793366504194391456158702224566488009339668372103678245399632548478147094948391182601138291416079232536204822548143404946298269973895718851185508491320931845111504558628428540757393037739180878748941826029306752771977410568554362526874974306638815061054729916881433790134642584420643979649517519363472291360942233667542215474769998891078847307626367592389206558437974548928528169739149988845098963966144496745464742867649309505713381475612386720763247898148057618039517854374291346462698550348127921168230388124174539208160555645380266807225827593987230602087617346860430619338193650451605472196063939384228405648373024213500982675393821105624790028642136111561836596690158014917608049971744653018042867632202549042756889181324144164045241244364110263764696546364929639105610033842106941045039905963436655400409280440737775743418893538945551820148753047816819514147455169779747733821234406447061943454023508200336951313871162557347384305685501484565081332302416240566719232508625983776359042274820179041289481787498464275617167669129231159171282655434175070405635267099448758117347349188280320247528006283539943575203488293342163977792530315233261765008357994249680800556180910191862167327670526600710107589430686884230563544594490086955441895590100232741820581345993148576963147755940581891347325308021262173767592877256755745471365554238590681877067130699384126974922862841405843794015234878040032012786253721027345627375275916474984418581794516644114610658989176418546420201109554126667489425781697979005050421135040990078037515452224050737176229609554912392833071717911057562619040093674708360421867529405171400066377498818774614519234055482247624219218615121584396126903690236331763208813861073967120966363599980118569327760833250348016898854333038718718616067801893745099544636991648805501934577883073601914616104808545723720810007535752401886402329774923104885876590985147243789788236370649008216180300961639365129976765547410783907826327166656403275940748346700113911231731856718311017725150280393042055876957614406655967918297967314513345194746156445018393220565325634845229632847039467155414546010407086246633482537512846981710727784794391468044263014885146154121826010718144603702410054909533825305257576593049926249392223606048611658209973667944368990724204362739323149876270206338803118012720761506936139169782668740991570694824016211111479714509632465445542183651268923070080256022178401484135760117361579945407224945227917161004970691516036162977122673846876867550558367234300581136357680015732715619647308545330383042085482715641794332923312895769434388173632096905155400786314966657829322398098125596248604038510085138781394605588981559350703661257073773978858343161527226746758626379450453738468032315167423945022387517817699759700784271670117703993877341673853306165339115105298052359183255434682144504572250582216349107206798105258565610173075928532696538760697951593012332394227627071231430197891502739800913068135508917073483028053032909348384206316753118056194050178526011750500862245337497342704604788138911320916639808281375235282630779355008908821451481484804911960459957303004993634966715831919963246950518185581576749815231791751352232309249242436826553287307335092099110317258567276235995633014399408157132480817470332384774672195238895497921443483459628663829527816442152422700507146119804884490233474192275941211414331893428171827955989708792408151635957151488042192629001521953763852301280450967130757579756981431140378891405609298872168667159912998333075817111359075303160263747451447932978667334604227862006610808440009934808183071211792860177731593866411800098421960261386232324900208838011404411892487309355334536401713203683418859869969166815317378544169076440999919261486043720450010482862361131233632883410283197895341114251581866664551336690707844170510754855846560339106073377495673443984132216743225828332847416564540314964358485200818576235918496440244622934050203356216123584207074330413977619888389210656524171154311689776224569786080850198667106583378863736069086357175146158959288746669884046493861916673956485207964864957811083627664189761328350761939317116878672013126729601351043799015677219497734531552599020357204224193948559173559546429699903623362751126686660679874187903566394939853596532045488730213698411057859102581469373626394309294393303077480119723416577790175557996343264166179949751746371891053816869289731440268236004145809589757253947744915513290068230791986224027712737500332192269848822079444712359882168216322042819973262744321652941822711490064357263263259324193772174794417366061631564226654601189545399339105674900165548930562200457077731122354890919616080046020738829694279138719471052072053798218445378851585462362836474557024446997706154691103701316500845320678694030876862779678697752287746214941777386919814657549197449035702429875882106979114467636433226820977187224513224175889536310024642906014262466815245245067432954008869105102777357180460789362198528133697583843116448477683769752484614001792320388010477471039000149958115766902469865046584250727988205978463957609529717032119777905009944693987242327394882148792262727557101853064130921203782907692742988205813979256892539113250387867784351571251349869452029641455852221101578420901442399098704044785483342688125044872744402728204702779044317833798363656113999066515823323613128135974066894252273030880000823836612103368789847618861981233047659479429717508802683483740484267573885238972793635317918021913950607694286529518741172903710281133601665308048530848792887755837093486968469902990343894835041551710224128179198620054942067294208438138457700683584750554075551771165479123461250207869215397016005376561026526493499371225037100229645593980150553064797298886098936972036811966081702112361786163419229956332281070981583902616814199417668602581350643786019906432889883516167257512754300374370950058053847405754701153122747549440041427067012266708208735671029034742417107358593701271248077259649269110500114521626297270274504441719871051188704982605336263195560455552419765813562858665264750008207125794846368162675413091850685011647352955751276114729260005373937509185033468570991870299194959812435034941608084035427692195083203063235027364346269322013118251496269504923294712916468960056654800532214717564102661117845388568932830516386536261056433220244707588018925815907964792635765611060843778416606340300821642920711539770931215389044368051828254731332673237626005285123502575927862641208743621327879990752732360286390378073433384109568238819858115755102775929058797460520307246035980848429777555049483667308782792417084680149641332130749554053228420055988834703418804507879599253332721899477326839475195453857423996312556055427542813212088744788263234925348082758127028798965906407818777681204620213436072442451028136794718186443200832978036965944353637815155413657820693631982233918465819148566804770769360262492152362211644456300683109191972415331836792241597034538682170264357144527547656346820031548679710393935876277346968225282038375914670402243644917082416114541286403294288491882890013252148339012027806480059655958545564914446966443139035060244859845980748351576310021799508972607721796645164252024539884410231388931853029328197937322839525178194406806928118610248408365876973466969541112266184312308989436448151839966286677342653043905283094096082307618527176595382345758107364695279956982772815365729508890877720466898104567981955426910891629578033925610494830848498326951813271691295936174945234495234828438713222194926982415939780572501269337012014851768925182347962952417457991743569053835289559811297949206630632412138480312440082702334961490001106924397461009616048544267085367775905919199950941247875838125137256067367584267519767593112893664557871873696506420557074162848718919745762021004081718750169979249287440334574157690104116939924169229410178597804538896764956021091559318407919151796314267205031032359656531637011502162921675994967888831978134834525583517794486898463597194035805795974928640058745349712565819091681620597704118260871168715933591002792539408965707684357921171982542044647328252606950228320653575901315730106828848624506947414115452689539277987755514249974131988550045312038074754801256438331445837935831460288061644916709847629556343303440083960742128015019377571266823110399937339430570024301622321171096958464785386058758957051517817699373203027158796341266819200061627737616522202178383884095181197574767872606678756541920704818081114193341067535814557929048876717828746601616659401368407705211343425401138629062339616512128345158056779709190102744210910458041437959772624478654653699703043291039841909215766809041463614491034623972130319474103157692003892282601853896770332306116879705345965846263868710770494403147698597647402329961214818486440844344461630069614368643357094778565072894139555383921730915435149183681594796552611872357496913228233553147534463157989448347535858951056865539141796684492277337437671555158938400592828736622942003938155191668574934501900754751265668489853175894120155661006370923583007203930525552442622744270536733869571893809686961296593903544763309208812937001760089751912258381353641962518646835398868245282356032854944116797940772800043368268305584148478228396612407741025871475313548491403750082315053683141228083342178644645395297277512320817884853288037815765796612434370040919924715713626474371256273814135606355325920672268434069056189542768162424680130332174248309469168130318855694911068513795901400385512916910238957801591848615734940806484414847704643180641534022870459708831039142713683147995823930148388682595144402019839435563337453789768443219074120496465900025594249152302180107582962423987408912357618764385617873427095735737872190832563270754383365715863060944938688872931050776136846919490122853504665161124660365460097801411286724973127758999700304141678870529813400754432367649535568026744254102194078842072122896545095136079782599055651441521732189706874108211186023468135594630726326656278963967639340944010608979633005631922310542521504237889151085907436677642977345488326682062994026518340739728288729119172428735064615714534283526860134643432866395983402309961880693130095471663189451908753143130787408031882070238563740294535604010533191409933460249418680370471616130302191668736292685554533109439386047209756052956442533077248884436742254443029009500403553216485136754015713614021671879341151263675849433672879378363202954166742936442479619990093359145259519151199676271625196996086828105652595952922041276470400515024424498081624865629615276429535893602710663710552231254912324228497966235401949718220244652211631632649441015602116863063141943162831898850640633815799329090163963001893863442445654850678115703181011477979153792490038753586346817947866868000667094928439824590067082456119106481322928454210061399629446266306546566386166458370239008218654669670138221482910121950056277260585645092556819981307689632332587837496700670514912682616091697924947793598148252606810094277042896983441930266564671704225163381055684625718272471441373738747523658873932997783604338285673610885454111669914340182974150774948140676503091033252531211570618057720922465468694456513589735865091712769502404008418661721265091721811144078093539567543120298492175552993772206749699152021629796581206713322099992494617687965011727450109683633972786224329422851021265511145313684915926242124590846975933561635571252063200589630942910925781660184696057341255595660685540440775517837207349018739390382957192983291793397503740090711855680799116896998524658367310128727592479073701006111044494020961325764447883825958956486450217069010270792871257719970873251773861206711436729737557948032265903248734635191672327702440735060476111314548656984144550148669523469866851696565433207210602893179420683725334325217317556886481807032794218575688880478839138817168117760757323661376652219503151756687006023468177086515628256083775247560236499292985667656869303536678393767830058511848021098414437079562620172730628401696390337918950302534898460576284939129085957753293982751505400182937273347050106341144637411698560978834971551045346381739204200031968730073231636165186483148668592534108957904955040581806680974213457207904099596558852630498185274489581632041257460712915942286076906344479364484263274127249847857982533747800952933920893115407767458973736356373776519676820289442239815288399755829315287271199113800434771062079176907967492771646219029131302531726049673471264293267161356496392615227369706642992581586676228207985102189535359255059242531453250787680661344576927716291835660851384019333186771544370945207615987323993446614990782915895237523691566817330036837001201557242450651571733174545545734005053786959917343138875223742304694905029477171125145250861635038901568747955930146504271634562094288218973518632998318532518687323954511977257860775419268533000299251102888449633463829705141169249222233859691387037526650262405665842777454493988652583432853207940805887961174902768590447021175352830797589019334727379424173059941393533744011021602641150266796893462476889064689617903792296648929078970330098484264421364972303673188842989273885275238359019427772744075780234747134599280082545751015997350076653804124564534185571532877737431978427510116847664048288983693156858513489072265118104652587989382712752153059755265442254089883400089701176476205947446000610043525265645588080742671556160381441271628008444064334211793701520235438746623734235501300103924085662132149499102075334036662297132984386401326464978553592866969111384083375210776060637481401666378324892290775199737963559311302812806052693155382714706937783547130395598404046875879646938372996894296713604076772180136339021394435056639476911828185572485784341708522540006066620385130794682217298382187020310511154795899655559789113914468261567489700151498372448477429877925769086700657719778857634024463838292059898359294586893562129759824292613819001658676600306392527156980100534401983332415812865039419225902220515386126394728086186140736578878032169307271870239045290576482542677880284336777989178656458632005746557886891885282508039557463520936768367405342943849064682155836397761082470673358176632370431305991303920219556020332012064187382556638464392591459525766932646184276097308740292323135090909272095895021392251180953258340138086774670514444608238872456190912501058582372871543285152206591441647739826378952920177231184028249397374704198536493433068192554319107436530556810140525445619718948501195417525964525444572911280887402117549533417036339506729501341211429078055388300226696213963194715509600386075788882851867428506756699521728755305193696809578058221393162981556648262417654086826985825707582040593145348834608754686346654857185167749384199397023592226632039193609384919878088493470804251250266486546098597151572228772930575358986112157971588511877749858498539835244420422397467170094605237905647299002675643600156470185052394026880054838965843265757181552951420429454304673950121550323275397907835400424105193452268320291711156472920493159224380391463980232604161144882643244201596571462851825428846323384694245598796299987145762418175867070721797290558181425881115353187200345496261830369622656041093402032300371012496877416358279385777889521857720654013914678581228442212682966380988999939874393830684332771954302329286961722336134009238533819079493632736434482268136143038159824980738133148258774566369930195484638948627453276804547925223275460963224589509418767630641544669836823143630788463758740060889089622553244342037329173901181209905342035226548318629853769571573939660221444525513414396766219130034647661177646878680315842141134642013909164678609317665253159737153592334680783354208049353742262793854901889513521444752400577427667676909115037116812001225058521274474673295652328547294378931165363183581088399497200456268450121832652271380454074981622265841530570470669340212515523214205595894794388772791718686682525276841356110877342175853554913998920038474496088250821816289200083465061849638703291323621890947871509645957215099815997733725702405921549988831979032654896341399830688049388438014832692736373914241563345668375926041011356832165362541143395786777614070583681138070822270244032626187288243640569121186400180405758099693398767747089477344535092579936064566918159938429542783253329575570939729599282094252617456889485157880702272835143160253542456281160384982392827567207785911867567946445922673440763660773031144743420083652537498544889770630009255210527114594641873802678881645193927698266522320005049020088819288419890725058588868699097486474670084873475911449996232956337501149946709475374450340859221923668363796828835341753164728576164137723856503850062267031970442238005105875555352429412771852710473961871833631009321220621170717263011340865504862564468252676750916148245478253430336091371649705020535760024850958011132547100849687487423084297966627608461978400521156198454792727009958804087506257457793681908667129154314011596643197347122232318974533399693378593063627420620572364172974923643015522396998386385727999325578624205005023450998618067937695138758611846953796102162601735040796517037133373690871456082489524680781176326967543021514354206586454251100441721334899168338412814247667396575709780644450570903195649352119228365857282818580744981733838619736114647345069968161807677784136552505805934741262925493390652528741404744717899092968138052329953566870351135186132148487686934976959066670201011575327275689357698628097747350097672819979395601876605000984130937076533792781132519205458128452656416278508952263222095985148371824451947637783361327367949363320266388916997118388583298642140978154564209550438468041861469374559946224150471668677906366080689602446953286021316092735982740025647215110142683458053413089417221617686905264783393107715721454166330516796676244035937926606553716348016351980030666018850963292311112930180691945572258503787314252704773288627818814932370739837468059073963352036107877499455494612643054947153806545533770384773654321797974633736526250364667576745788142526262265507542639759966993986702026488675001807023583429949523086988848163579029657485310139605845180328762044101967396135210651337149186070681431700302483524622313426634339196191393529415197150842557562550112646780970007306910868731454038175547699832242983628046951510362580590601632941579283882019846245255391824924024160094933637343485322424655619093381101273648441694380091153075025480846389316741263300623689329208989128666146235037467177942878988376756080052391302881927136542443722804399422391752124017887663206446734212995025708957868746258096209015317664918640353792177238238513336172206009170224656667580740484343390782880314402653410764518774853826669577568098733466717376867748456868191045626238236519321122912090633079395372835535654174831590350451417669546834952375040375473134767615414403581556307579784976446658231304752968370617932417093199808791678748543358137429673831705655546650675987613728984305071691338230229454495867850549412333526196183418740431341765371992863387075474885773741556383747755131620206011922470600063896877092024497102464765200781768885999808642417109060603820046327829357701831405270662549688649788999204716827496437348648630581766483915460338802273246663206868406614594134847530570077455716091386462542352162036509966440567790707013182101504620245987485656659507265537153238300541285969961291854748737510080509184289794291960907797217427245066875949703870871638340674055486702987060184831813113570395316085693721605102830585465591054074586152525183385054933171194111231356435219547070891132915622029011115553685469915369231395127388049807864351011206061421884648075621963447844580029949488583412222506531377364472281672457810934821840098004401188416991654569052849424881869439620527062952033207809893338232839403424016875202096119306934862492485218541496144496846556001692486678973214250755454730023870925384422552554656100628923405568005380954003280991405190906676276090136027153277996017722515710989831919444025335888062675254844183888922608914387820807164594878713547898870596248103665208186123583958123805843820279960287778864765454485074484636883933383606280310166563473595333497013717128785764400860433240370077365782625600810203680154119918933577307223534179460887422248477988882834411965755793627657571154722011199286516008924779265009470649169056425336993597889998684814151528452643674792708079283859227242991804843078764603280649479157759955707536940917861684272611389127741316838923258079174539370053851219800453992830191689654100941664642794445126871207493912044968628277570099781263636064032600200371587903636249995635290953234740381607148936436076989757264632176337805929814798010321232080652654082783279488177554237844609734768103800752074126760478328680817882136357771327925196456235557523603601843225689634716776012928874143068355314343477838426558275779305702647773271516761846551943551420169322265238261467391216818451723903872438817291991387426351282014182927079509901605451217482544987282999418732310290391123250661761758358421671276280503413238885064632704338101979867056569689748923001572440210481790609945628917904780276888918613642071669878942925430862631121548602884673090921614638878409491020474060181453185832302283504379846532840108574741361740686405958485564495145066662374080731287200890627050216690162173395799971975966569770327019617597937421390149144016136396427526042872270209910007590362442982963673778611101811959943889890878834963631184223328646422808914525776748298796481880213771636007504469163137834850686439506607527686256666735077067522257540725810623011343511208813734735187548764145311388305351701155554642242646666747519351283516514033391951361532733965731598805467355242900613014648240369668297575591333122535607822599125133790372857617388066530076775905059545873797820161258457606732286046558337131236202836668547430135247618404777817015467380477974977645817502639123923825355434302247244338706621149779352037121150295931523133913522328580699097699134488455717975950386404723351456912508403913557199592534182119380763054909352731260971891557681866647978492153177469196390888151795943987227962939366173523461468895809192123453766227101687872642971322207963789594843539587165673503286314913034856119028206339080153224378383883900489323032450319739614128044053964866242517163228322467776838565875552192750476473604900142712633715110663804299607196388814205400917568160134804961107189429226903489350622280992590559735707893845003247617099805183980989602304463777194338581094296896746172984530968621654887718894322547611372636288986495046306282779981340059844303830162766119578659648982557848941474070410671825482956696306188636133746024212851798018336960961551020975317918089347283904276859612116603458819496480792792184835163242739657849008462126317700340730831460539517574710042306087172103232335512605153429988081398900424672689815289000677844924741804376946359412735179302850334672729666100932536796404366704615435419839891816516262139856430006469998493119159813982901446440660481502675952306525570740547003431417905897659277686398647993714755351663018266333700662778174819478841335969094315779131792551347332321762470360472891334923879529242131733086414946164052160154926232405451923797744880080773312540123166744623195240514912841328753471458430885196740177542662063077957542749839720796850237450821958855171245148638311550186762069218174466339113815296897058605890427409212750560439443251974948711806682958474064339498430525821776128144214506709081493859123645043279974436452413411680926176982196754807535050922321034401317564988214425064091434783513545162020950323334437388717445407224350910759541898156527789246299873160685513843308959473909953792489490400689787076043629998655448942124714255933606159785811065656242094139497283761808268546766415358810896209809557421893665386807426112205586432559090365668377875575880050233860092035046564353194712460015061843542062990455166722485702125896991748799171142939849981480087122981239193411766476947178452182892366394278365005610761983917055640819901518416272288901143426247754790457218870256778965959956146755396617120236503923885075465490177708435967392603605836747135561345242851030737944135073118482508732747428525441067016592524398641285137271546123119196557760856410110917460516724438089040811411977888293638555517746817395479581543612468793660656357064337733163496540288257635969696919929065923902294719642210047510923391184224966405386296193626682844259469828933447632254589532541244957469875637004556739690284898729775982743192257848031151606550518540997824472450949518847466154379890704660639138983662310020497887069102940897784769431368343115329750491398089902420442300825202796658626444656615402609834348800898675310675295166646792044160205145776702280183424992772949955765342993954573653839366166665423655463853895665041902821032988332501576013379067000834466733312658507588296768327956203267980273135847194157906939533345822662977958362481379799326097763878217242406322993520590544326633621078970333855519676680151484730449358466829292089603583781868800075609671976268701273472542554852115006645207643700898914450308529636972551381173204915378705709173333798262931725717233295127204913013845827541101332057638926583983383304238869886696459152267736656843617242283989748851435406936636505997059452257444327194502485926474019901162548066220849644940326984915226796798773407038163986845448401800258808452460715044814055812945930221187019511190511811210246178786743258925539187011233703181447230954644388362221499602741963454485160769718698059894630124646639266635843448760787294172994088681766847326495185334017557912704665195542824095089980820257911378992455807284771813660853699028465170140512948984361300254950402500688226264321408716819817640012512089274804950501943855981090134672851432069774055762116592285713909227603523641026976525605016591289938342684933061038776985991110855081231408048295657586569373496710388155487647759759161526474858039239021183845516070274164046069209187182084553397742650583428148095371688934681103971702791519355584366742588056969680523909559692386721125429194754152327405198126284911015373132416785345588732926808862635967174079920596846755167653017315252573052862024900066925801176994078908950402036655665800101087118192250740902099043874566932629818717814979451686925420348051902916316220023125512015506693536597619325909730224830904644588950670311662069360353337408016873645805828123687370045886901985683158696672527231300520535553650632173178497821819002897516010166056541316526606823986771106352177100529883556383451601040565457284770910675586442209272399505432070334910965258585938565987615891753285272143817605733408424159015507164379023729768964442132249467168087767577867248542735001003894218090321746641613495299851959614952436726806256166039012481943043542578605613357210344054785570352114888020633324486152136775727095014726122033351011968059433969265960131653215270907559101065194698315209010276669581454954938023517576828489019255197138891192742045668811420130801954817059040941893646219363526707379554710080789877302874064463087726001063093005158146191581104123105630103969870832437720462809664853819645359612402759060167436602346306921809235780672198114595894331007747433895952772399647442718197613288075719677970439142791615063413440954658887495321865254079774485233808231295163617783210598286334071920118442268041956333915711156193208329475349547636914602503775292944971253759601580689134585239215770808794418799026673840089343301688583598693152012924947699222878670777901158925479333414044232886369020065209199781898682471410163514302348930297708878078801715093158527382816507779708343467948717909493986300471138298558792329938740572131269399444219139268744398670037520449021539643436175781924847788604588998792995334262787133200049262986304677671506138066432566526516490913546668413168757957434665310571818771086012489844354927615887291931291331052675524919551335930227424178348417933883384007315398545207258904157345850984614818143782738811912892388814877630232993415862985425199757578294924341962764102117357774882888177522082991400254923551334097806414843728476801677938675196451237975115282548628864282649753995011433712340299563802296316899963283216532875842319439806107654965448743382497198535258006147932658887177009016018161295309907473117683715640211355078075142892332371566173131957259925869217793450958177551774247696471540688147667166383869048077810707254184871032787696197610436609399180454957393805993123870018515643145128018740698794559308243468801969124111307589010031690240571702660021068997995560026020015403402741580212951363400083278087019580882948172764838405925443031336552304653014757126848520001476517714087013431163763111549224312542993796171447510315008063482309824089070655175032626992412287112061371793216568496094363184041002303036212930051925963411904414229246527842579849651346134083913996141508010768593397023393508853841260376868647945817198135484885269355667396329341721099097345673971104134864504858934243274359146526925148271207303006761010024713201880338448699459811650416003955994970328086835150128350469824844668379883977147023651479381471137562992407873574334239729224066626041233511482338199128474329700192527063862335235970918155295826565725925376278512455957398866365215518647775245755576181389018266444199937961991527273680154398082070587826780781697925336256108941445399863583530984222733732784474689169241067642909604557840094362826045336982352017858368795647288890656115795150908915637732023695377831313914275151491867888967727234259055966680335727201176677316427963562514761192751939868359491049024640426631046373778761754751052703633944901058566468640626495692319534068840802533026507163591251231377518933375148524280825984196385254464976315678532743479214986084138401396878782531642214633560552896761985577325356505487886372974077911763458740968966018358802540573391056749442217324240727842228498885986061661433110095010203788452510527418294192046887514685149240410684736318187293477686990814353467571038076087285602201756264434081113218983452922480696107955416345166071103275506376410724299344163897461764568921550462204623451172214608133013127771647478487456404089718203983679329227661840757782368866758321374699925579397605267196359659684599715984498538815172317927327045501369553653477007107544664062786002730832409197234001313538297474181938166610187580993598248921690568713194550272247856894827912190333837472719284146998820894531418986673135976392238560178006149881333228215491831763593284946024469546473042099458620248829932608878589720448788584975999619463538314669992419343288817589816139410337202299057387918293003003287987684937989672012127631571452895501780753956106384754742636646257804343508650021958387357453790479554734336996826036126071013370080078742703228985767006550214642408007562579947297817684264889654706456223306611158297623546544981517245601127697312500666078096645884809146094684632738915171132478890227407157932431163008055490782481411360776607108235043652387214019355950294357499752668896233192958140712957461550537356562653059938245076980387315596838536451001305629518893766434532527199667098551745907657797454214456256470191165896056184914761610747497644956987771288491880420629375118488002085546772711082853864874966883112925140996439513859178269126333294939892770889369917802510729157814659508286962663984735091860947649474088632043429983579227930090627340589920883609699365862356651117312134265072358795483333936247852081759539268993789299018222471987504434750919864913819918167513629339834296746204914996599617562426554647769055842523574853374334931302724771259061887683732386082127324396997524256455746119120871800996517636976828695698410927717096391538002673579261195209830071301548084202274796927242736600468441257236729039343328583745268239414676206534482403592363940643080979021520191259241061404511297383278159694326293697650450764155918118555099336012892607848156034284019345933027522569691128315500667393490145246402677877172541579241981365577396197905880583187980543093102758016769776650147139925605874772359243793678377425150602096164401053275828804344500997009921266830925638077302730759659000515538884646041107081219552152082022439312487860121692525805036039238016623482936835850070346744453892551772572259631654030570221084998267786983833432962155770268651877473569185654028144263804505310607240475727088117561041402940315467739897325434012998922544006106776339310336981328350547643653598490311734537699502475604242362744254159995425872987300628451969108030443406114388876732447130856599577915582530172793461598058531781344557636877299615386053100744362263682694899386456222206397788927186159137911369847193325254374338045962440216053025702373391562612391567843210999034946729928222556600204341061443939618545811027599286486524587081309168960667151921876481038274002006217756829681612739973176215525826857214381489577646129159635912599889994243107699323108838000570888110083863279084411133592355606060273040883868055348369169119769424823144402632110118917886122622422713461376584437098025758617535048080706153807591237061602355810185311214958570555305711113172003484955531338261738486772949005405905173795696041557884084784571161563221326661289503363091749795318367697526981589791155864548844271390487718504590117929191390088197256180220455457954167032299327030411666324983273787113380214428478977803760745986845784174410064615134597387813847272465083829001662894625564604455767946067418789819979728128920423862528832014002603787798471184551271594795416823845781322686935862878563149934514565458956250424443869635037158742477071616465194279485628685273862655842582898834182605075211076291068612176091630205941582283298261736259357207639496989251361585732189420048610178691254514285371413903609738058742795696315557101792356508255245414359338356400561095751608988670249150596060980461175941005532532846654834492553827821647283477621340311706500172040982809765694056448389322627938093793737020630573206675083236345520298358254806575567354595781087686687594436262991726323651967166811734595694437153774103389001056683310215766207129141627330533692037353274240967294932136781136274895934366347936157544108464895290806682729083685899978373526046044212712012120030353945751964945183868956088785463344520715213306713688612783908829853741976624558604079882276669322237057030993115486192468279821300966778860037801935362575358287988846885094013332668324361610545676648061787020036868300600978883341672308075470937141612671037389878489608410681437190191483600621668697494319843286451938400371623407340792492284218140165850814461804788111754951272746029401072495015674757522978631199028238669485740658492321536775495077456803054105270888418591794342085630597219734357645161964407195592648823801709461168934665220236429616310851876732261211631626802580116904037551776674697513324865169770273818112381208053448411361576605672811390141147852763727122848685581539854563780046477812903080234612530220524696564464426945910511517113598763591749860037006449756861724815311145802219250292382320476101463093873255460859678567178876389546940767820039945713561324214554447107644392951770694312856566275750876739644798929017917977820245049592746527900383325891108587164085902321580107071411719091936390841777246271033136348756909047143524818341837685650006803916029893670522861667024087190428028599678942288662560442084418093182232673989301425520252395729468656810244228662291043351777616172394422978548173859727749512099125406833006454324224434688080949638013356272402914383639330159269898330218698444528590786121429927929406686418207128791207007113484461228984381189945022184205906001470572358847833912619933856344351562821761310024179469588409136621802027935206800288684673805579024792102765406858045463825247670116897880203887357686852078369292049556983595022009158176570761048632510684186354050468322369297566730972736317603118690821824652711762433146458361815079343273252162462192635503235329046824036851135946414602788688237664527066387679864886428896611038343387703779087727371301320743386188304418326802409092344405849345893264299106677239684926484802848564893984879075673445805248083110072162061589528804439928599755390543392577474691158813656510252655651963192183297647076651171911399412994003088568217891924349551327517348334186666714483371201341911577752264353299311604409567977405721655893725541758836845797269496316622256472511246221062209352506193081522557259122127958008308538651828821923345985359012859119240977607637909824071884163832482111950288268932226593027074567184078130886476408721169064378541062665017712324390311983137186416232195981497739697611351698514157994854456957942150778524586700555199822541026051091436611946066144316522819247220321452293718242210884002142666302953905136955559752673852359075617565764813564591020048260410153023457681497394703244947779046048091974624965768771126851685764465262805906779890773119351275094383214155355131130827302391281602180305686863917282483315836436331327897848829518817751789510318070309534854839590674476901543212094062912131051381932018224508623584263605598781889525761844169666017883836948255029580401090000872753781068181707805291656919787260236068477672773437750529857593663218671945128559445490709217015390431636083749479919929676966363856917958858833926093010150842163307891875692187398303434173139158977741606935364763900769015315485383061485447247968895686090197563301212172583502629784322218568158956681456672351619941239104674187392603056230396446785602296766515771027439160559334615035963960422704373167341437862874504131632129143272033770560518225338601939852615132721290313563868840475515322360130042680483081668465240096217683684456940379296296519436878641665561022434290878362207593498206937023067490353249803822790376956160019201880761680962186105867720903733614065385526335614660583768197043684065708234313698021720837090520928487551260609105718566493057647289803376966172267203306430315766191053180971193939524749849785222906577319406771274228580596464593042028534521753108323403246928025760496062375358189019128431089058155901638813066060645227100377767740991986068135218489798561003158466818180596037950980343720578147439965086080603471307654369617991120952123766403585133175903052136698263442148375704709954080281290522952665418114161942022543146509891589464373643012507533979273573999478242511941571550927738594021649849091636843605112552529975240340825479635954151795177792449266287878854371565161340246263740602664530481332090637715806028370624089003816748044937404645226718889551271762331613929235127409760627756486765144451441539255883909018285199938121211999569604595996536724308843961498020008249321147455908289343709252546360381721853161475000923564117012942245428730207534013817672294171945098701390695279164291867717496478162992517810284068826913550187732327076305319671270603845067303076784131407163077436014141963353550863439424641036819625626619635793762639180400696921812392941262051118728225929932660349721625323125310855133127567282621414761430455415475215264982418298161870297457438275531132079869391069340407971499870133604716622081770389764659295544400595132737270268458393133917246229249796394155813868180610008708327722395539204767905988970994398923936149763706561184193798742070289214900859118562675858280962332859698686804164987952938825763139635730640998430207626861823417718831475239245480297820881381440416554526537063494870267437293366207434273505940159382987010828671357867526071918019548539390613002910271075616188777025681674714460348220279010669824251555624391781401072395161869710534936070716734618828326008548005648196626170692617498362934315472930319972856083774544002771928224826281443554397270792331900624327606810762854026196780474040971126250738001484528985446503817144318110673983994377440356520686323910884633090371131793333905817453852866670661779954118687875453121262438607445291265474255178615746845407014584157419058832584495364795270367888682266706775623724348752006491737605233213783981932366672094849287572118242347740982026804244823645150090436485894957943049164187171433420061038597212900625626722080640124406950511958207743151239367148996534723701330958280656791229276040156972777053971167662926985143594079244952307900997299209481080938083105663700006629272967218204929511364479731665776907397946483680157028064100790528619177109709516804179268174586907728427730746475309888384417145349305655906511037716650447757990396055130525197317127209234822605683224703133970847899024770911333543242061451713197199178849763553279503161803516543341398910339009735966336336875302955492492548902199065659125270778082643608107605970814281840093896733165189395960422250155894828424366887836889362402502657008731270726862776165789022463274454354718077309459533707207591875131851489518644263870654505333517051792856729892900152361234257815584758484595930010943772813728965466416729917179827278228369305363415265250004666712607240728891092022348866354105708544914986032452310121980698438379114973990831713582379680596077920983345387355449062612101892780957978344360384310568681895323882142204285834092856948979467720579773063630027363852117377987442715875757004890223961263389295149930736096718736085939770999135912390991511443364720630344120338105164533739888496864176906833440948640675356081149422550167741436708772708288461200532765558904364526161292004572396233674167998345705534848325201785260981553834990173200319554547541392359425480418087549400497516705273537565829157704392778901837683082879915639609987649149749644363962637816396734419252819394294218285926683763744224205131472126502787483603565715050761667326296277794972816563982063078396206308318208106334200657781191220563759242922988581377276166488229158169806774478074393634334034691765972660236698339769475983890467051799089000063510105376295956000999713774880981170997997975069789528132522030611900068720249943198430927744377861884939243606397155668758760182167974572738607556734406635053326653556762654552681054231091435010078257919070414226366043136101246699857790008108950614122782607284765607918699953124152806891399489621063318661991367809631287045373959490323540660917797370385213243028277689469534122131280941096437627375094619619969017213958551553417141712033421558147256088617183841916372029928780799117203598750249923499914445494834359824605411951037993035217549188990280524722444568559088143046057107585620295584336168350513355772592379211849851025058555090048056531350931655452807410845557396883350737865418157219683663344017903628601796907971631941702433795520383482303175265912376469806407968932238819476676265835737950543285381176672315633281451019836879918926415682094566867144378657305020217305851967585218282419624354319763600407223789366299482947672633745751796977505702347932608204961564512233718995521053676078365427056067555329212971745564314918988315819561299226002654126483049920742903770545264128000606187369267282004823172551799776390051198310465474087679522345459229004428416346415615326341051076695613324961321357496354916936956331434992307089146615217642836615680811313957194173031976582535682847224144733275988040704196920566885506469210583162233332226561838459247980276088343522460533046021942609009332561795448585050382288626545677744128309149284711554300613021387961295963641492270364296375666929062842023089720227819388813238934295764776179470512173505228948897086527669472499383082732446137859059473793721393553936363604595930012971173375354831610730541716067740601206932547507920210377638301752856870830921988774462167741821901814814997159126504356962744721558281313917213792497641237492638964429749637454340614415881231080190542476256629789068252863335451795100909883847662933403414750476855705332344345047750156352451760677872360682219955561703641085528218765925901105862469287027928828018453294915520292504776970655556745804079528441274854819018241027346027077760461424735151193145104726638945405720335539715537121628203017211339815063236439673467364012825033528784506526002393563761034182963767521498908458294079266310892671465251582004374046836219843676938167896211149706280632238966159463572529275622114509087969186259512090919431023916184360940482982102572579901622477526580384390629239262564024041060051545980748730429127151224242974218378921387394585832147943164639523418898242022421621293002363950332898484626418387930689661008521094260360613443831265860016343078056663780225656458912321081420070430961204724230018000530302810831535852200697674748622570318659564653988846980777026318115238233215076543044512824804589569371258822295745804669929325469020952976896934213409026856227961466834658995110505843227998381417543459428541636692161703751924998644135244607175262493277365530177862507931461504819134980647013318996109337424942296070945738443441222362547283231379721503983653466832094737219388659517357682939968304015381196271911143244563846067618200391982892504399880740591236327042655526069468938579703211832298646118222691198411715813181435149176427653992684448273668709165264638761203177468764181824777235870853932705826452737446050300928472399366311518363936052455245474046946598616848298980528472293891146368022179290597079735819554714589133308981191815545452069577945953607133213526037241303210409452735726864454329829980781856223334128042704217270308136648453342142912093022278294745316292555093461672362176422596256871739477817036996500778448598244160846820114006760356239556959218310245424896256055293865906911424984889053867537769647720070679805166862983960243967287968900434672278209223802731532838535924581536859858178123075365057208482063863027696184694783551482787517005389385602837768756505943192956418301652228541014034072387005899493304387985544261112855989804565864925402795781368550002061774491516728004996588301541538226105664620833418429923153520118571622237270321356763034523214492310240807290578874603141264027519009391079663106117066044961958366854283160986783598141093638303253780081374893869097345942243759808951528156023810021605219232818850682079628938753596179874329065761938901757902138381900111014441104783938692002409623664519255569601472222814916230341625330334717360966449443169937512406404037868398623862504509968383060552466057949885905238954217084391586697878502673450094281208000458892380894848094078221750746196355739874795172437092144916970397247774272687659010899635738737316550514009223052103982174825465337090766424943046896267509263831981368731614773568086030857550476320121414375793674165136830785431509669549151661821353185467439586779800723653548546780062564444655428881520580156077493525195053070265904815347661904202454716252515612578712325909958536533570344448681419011795698743312606887825083839995416993453047311812299603037657794988607057242108624082078975232174178921456726600353237828605899551391841709027540808935366989866712525702910486208213820190355002666864371074907774823591262439904099264490048097402022932786101178782482088188739340724399437490260011137925880443029306301265202624428440125606079236464819495224560584754117773613534737776929697222000792049355564348330055791851457344940072608278367474987636959065601714364440504269052180228892166382241159713062568971264182709215471442481074149991967244412744605001436543159395090444292417853708123655031009970054383008048141996390694055308004977028539027439812474163914782293249361807937360129943115775032235169833486713975671000526987337133717449365089819542782220332954676808118013514788424722335606884344898495862884468218219392973507833278907674916023408834009549776310438758955979381218397992175151803685686421011625591014442841043671794461806119213380207850310354532442521453880146934652454406579356386499786549941566840921643267338731074868948853260228631389092277254791885565788952312533900887503647861772187471619665850107401246812229360897203003559783737362150445606785821306701035355590241527800556500993151073126284064691293565364662812560554824841831356071202598720126985969550781854492888338908875211114859999271122008085726364454201015147008427821858204721219164277087347285429482122179847330876195610748347057647039992682806237325255853618496072418609713683024414555747984209503877773638125523896809424935279780722007689573918360782824135070810583001704357568757947455366274780553927622582007358108449009775592184082719209286137862636269628240505760182924078150188855191709631235883365217602681207454497992368806396707570743206432900429113234838634238678785956069893906644789165567123364234694668257053098810661583028762375686835595191144266795109230755179540040433978793559430838998743844931649635813793522031111184564491112095716561384651878581995580678829698429215148541441273116437182691255948228473394213120226059033856238435807615705352000313948393851221017581344525596968759403404689916223074201976940392992222693464754159309516792276776284065866484399570615328593893869409071492667967285510144245021120172381062994157347924394842999299087366376896913257909142798791765594384830938582746733196354462253466446994037222561279423260718219710837534446620368557019375503241318622961246900367118596755534749544278147398475301313173973127431317057259759884314650429400673614802602609151292023116295242147157438075022552064821484401928745270636365999427599551646040734274976397045481988468324706160898634810029154241570456341398416973241917339480857337755078593878785928355198068951194648516308018882605280439500088753833721015195968435660208961600390607943236304984680489278338119179883938976169520440903824658320210487897368339914176807931691047978713515924403398920189327803905778126766023678345576154425050503804211184723586066554143778032902842697274057549595278977447691397164997439044939840365787961471876779278276904539561555781312191275556385873370534667292802236501258117441672519056240201332113808555249582547563939840922452510105728353449445719109792500897922342129592153480061516220669870314228514446701210920373275594090173210566524081127290040056093734023906383663039599327612551928758946643681459274459429578579994358105467083291074728178666809111131232358870886716373975279738392068664931859388571729076840468505187237420831421232941695242189393466500353542410523421039120948938615397685607461607383758800166790350029263506753642038161546323969934380359890936542397178084269153018438666168259216955715699770358545277436030987457043008600941893166971123045291230769251339028954003320030059711486553496045319868258014334498543864864409580846920021460831573341961031762570383975218064904667862651830683573873925134836519693128477951988625508130214933965980750307243116000410729652631209959810182092655954704129837917384003314964462221794581832145794989475919978472892424400706862148840604882720094000878374318115155201700440391503019382691613199409361970061070901682658796821721934556986546071905133450814032648083119092556281280218353226942725527607965712590717885841465297976814599540161139842094677941210454391030821583349428967753786659172703974818491080629130595325645563844697456149153806595766940578261595867168994519980568368785151035400679111468936895324150855813550863915931794854802751841750206917266004258271706163716588221638337882001141488679822668301656397445073703130802265173559239282342715818734150270608559525789909594954563823111672964535974477793798021719989473795443104732215010448317367348777990617468112395628718854581908868236308967844042033380487646307513938218246311307377383453498874938995788495565305024616577659184261679251966259154476399897906651509332722300868952009576813424548786610962421659988947891599746309331731432856602957956283617216338131699113387409516981478125832356052271916795379854193554946253942271845817148198894407864618951452505354208164833462189912394956989973958609824317059353957204962164171836079362831006398411416701462968624638565951976814303900994295440560704229245626905259464637388543417442972534385435592176991740102497617672190401131707353060151520060603973389923310726675219446414860017898101750337528517422091971849467808915559060519742514142911978616772000945855208860255011333990217225781519046973216679522751905464443859369618830862351754780516161998579228586650810413073788592556990357936533835624658781315502394722108636748249755942784869310309655818654927914860781762609715978293648390439338828489985518666104900309563699291723393727791545572651880729515445790604754377752568214612375365669328337573305122094143742084137361953981206670767665799051151917378525540290339861273973087234765416793993866629330842133628730499629394204552143039708838937474909711746995279993261707796754403472365638350402925050247043548915733283945228878597911910841411143838763022842016180096364417331277730142177797898441568782866224452688977965057465776237710780394452080382676615081337627689835511542785846891401986670467821156984751732982695919264934947691622478999060227137036319549313816785395644509619741278478754489959936662202925156413468625399873190435621965932576711080740149295713190379260272748964032824687386504244651582304498056622397441270992275928199907011647057698919724399450572165467457443676101221963831613881221361310933816147473984063043319998110554890203103119844042398525323085380416615305275622173057577012174203408454051718578903935458464051751244453565834054828884309329007476113427911950202354750037450651397040579492776712286650957519466069474996161520517399584188549397966222167488166724308740728234141709318088048213035430029439700969984377746195437736475236731534872501600156983319094788780313767906375835014832769420296252814918904202403998873507666459326012490456802709131296173525298272985681726914253030483341316160220613026008167127032054326149949249187221719964295245132927009228607295707863524845135590330247527077625774873984523097078739983161860609865015283077467472051549711304933762994023325801882639285387156821648339182165689729836677512024244468688284300430917863577467766359720410822327935157773049387668930357660491399231491799645293628022329529602723902148199089525383781750894612623610450604949308374295722843617311411392459482541716328148292977049196521744827156741858058641943581806247483289682014606437400814017966104601998628954835130270586109970854031044751779245253559362595098546525945749871871190534216856274431967207062418979080932173842034367758257042989982065784215621357972556383383015705701847217659700163912411125207262955969416836852259685347204750769299965271244646494838272265813897164088745632856199717637143019896696982491440221236966946373056496918895122673574976937799716707557589884186219853426581442520956544401618853397517388522158333369816186345682180441877276819227098042704363093242630119639731145041622130677695767154464517912964065039445950689540819115351570155332029276140004910768359259633518703694580968154898732623798617866805134512840847776127880069963142870970789303227910049640887774335317733642162371011152353242096278407363037172907066637863157665262947832793934992935984684896469089055629916102870824895475669283275718445886876579197971239560503455872560300857476741081747271916267424628329676905211056451625671553726451818814936203039409348551360963099875771794933788074636212889307836709278755275849060064369073565039871590598560480301381460545169650877534560096556876117387544626059880253699834420467997686922071942322029683623464357682919172338770861765887242302774621214295203863138082920642725520493725380863279194124164177365903208413237993755729699261894136620089752616192651437464869829863528451250306612019715055480347360417364201635560462794545804035142351131981932498179421995690966131743160568005688036401467430105978899863742420415938697130884713011898583251786800432607597895720962255851994653097788746666550310342189584763077903282520207182469715216161467730044947644486826767045700911443132578078889444052806407077441269144248635517630797942034437011483703769632477206113713914738820900366524698590222933670819057424723806873362565009974643198812356545631295649219422586729687171419245835684671846222428711042130622579615564931178417509282031172817473411101462596847583706014908062223264634106531410289081423095950055963838393468329126505252124656252642183021018499288536091083264913139748840079599499690233802531297503724793205951330317368868130250021234868694629905258610059208450166976063508836923527522931208555841929930763700783207841645020637729949873607739747768914910355820261983339365413826279303744271520906379477952748860931392857442437938680371371382249191704994539240192992450206659481004777287242405490018679780200786033525172808531698316410803507732746403771516056671534198637165480139206306032241006354310874579963691105686432722020800595600516450666847735307889882278354532601182088827640332694856968266501599752320662024972934241586721743335557867575329088037209812270696723117363032819724210744137852044739052157982677048009615180090977396045438616807355793742214914120672035836128666203388227040585645787574003310461573665771165256299042758453146321606676081544762051460216416392019468407327544589894601442524798467280778690406124322630492868241663252277461449782350386836552264375728312666957214232583123117294713308129204698000220016545564283206119248890357704123595751462504837513495847710896381769946906580104004694051374118350446731303593435163301509225273108287102191122791552462587844669285874518985259977230170922646092285610341675371640022402104858799845881037477944890271268424275289899647613833041835912847318558146309573874315421662790865443597411801169725102714332419037913909236656449120751612795533713343837589037075347300087736892397168508489474416684096089026150038581974458309579555961947792731380248574124920627691432681488013200447969807135753607389841700987621903968701705530963332512350590250282681286179350807773901239739361744502041489145501720577250147935896898395885053784337851239931975344342149473176198000973939408048568572067635050342549046036510747589367801690470194360862252042509608661884124342164400071164486202569982774527256614982628212306900226535782613764610134020891146253810824549370177617599493123993956448028846365542852492312264708229372620044750080743364538560516563744731783597495557890893829760642352783061119168298092840394434386199231907577051782990735293136241086041325406897113574566886393672162693851794352663352853776252328319446517199442448475270229584546746386424435023491321759727437776697584377028589882497272229244672493340084948413675327778108597615153714319895410664141658421273842283440788769164181125332331086367389427053244356224237481887164074336318967495013281047099269632485602972213686994944198453193681989657505164392000601227557654262876458095297747962923978360719701760877978757213305485821385961511239705575590459487130560014990892968523180296340064472586189926298042547239061876832816318117692812409748965432768266408795387748316814517083910692883084466688265838974120615811654375774086187100807347147906819106287416748740203024278377007634521693690038397957815753795655111427212475297586458897428320119946366911858662241738931453156569616273312762511769892662032798515504023351620484206042835225487643207939116271285019395182405959096593699399422913344822414147614650712867577842577352642705179892776922156211351400804087042415989132808335268704542508617576761085528072122585002666205502834041886581965015064473313992178401834675735829542594866088273376637904044170673862368162894522367129704102544130507192859221246733922166157296832759645206108246191860640656025719796088171558952312450828273714255996310044809373661776565732580143872286551097275727808146886214026457797508386450871320485756087745682761790043808124461927878282689185453037319912040224140991066401353294863429151043189340483426912570624056701404050816633420601170700913854342694760265930745383867343074255734553558535306639654244599459473102570566108501896961366414707004008928359940364723354806027112989766610536553536102491185481321735915430326012276689467187761196028882694070104652558197776843107925246084531789477745101942153036961841574101873632787177972119672572470171275680522206206000070739419876269728850969671327511137131989111802140741667024502168756494436034590916104003883815212741065563427531342287567645090704841183566693533140115781644790741659172319852994144637210185881913534863481679660891935064407176581836004342303064901052917079371839854982289356984917355933732864915066892827500133679947011848008580833707617413780279203576657162663028332799900920462845963765471775191133888575715255583453848516415571284397087626956141241524481800208585575612826170216503528427072091819697789432040505080832238465656938155171322243409049079974854594772153684111469226570633809936158157597860179635642399376008846232077053265856664804305187137935386082833014855570678590509368544186535075787568694963624123351440297854391563440283788204827465918281955914979553493895134354869344078786109141640926261798574764474096727091917529465911303460267862965515984189241341918591741643361974693639098718179375767066153960299634913143137899031549507035275750996386235874437854973592082821203993637745586725241957601119709138589324184136690636543066684563032018254655321096944215644837391858730102005859501215354831063494427486841772530211302953194395348262200770589789826628183889983817474122718996354687594075907097884664607301547639868567088895845652605424432086082344592563283096928254855841093562199509586390401837672063457625629196678705375410147438110036631698193694654384353546990642707128814668457875687733449884394628569526154805133134614058427589618358565100469587297356371671474621058638117178484993849720372402353453540058379694795122609411598769432763532813906556769830131899349412629624952411864443855562257325323965842424077290084692349083830554902778539929420193283040989864167821316330612448875143552831325283140925697995899501003490373296318482009465032342997039958598611014224404376416990221179670181935407495126875058515852524161359002359816886901447580003111666245461432895944608039237708096527975914625141251413076749147002449872708838072276785440671598919574445004939518107711443854500579431348039786781450287404247692227312235213288526785694047025177805001347166932524686201264584815304354857589005757448549532242013145859142144959122693471075597246696472271335219081066141267424119602961859380199120478692612707800910839576077514087381910096472459825518976258145108651100868522190635940702464290183465059789377970599652285603277349669963733474151976734971525184585651365977611395325171278988513713840286383492845124757812843634709598112384707149514044452214196081163519159143930370999030147717361810942271266247602112272970472110447739516181875016068474040208370054245611498928024152369236073222031961615693722656020413997472098731542692895713811935802481836642793885843499735147464685391634908784737235082619603808872073967460703600839862771079694078462938415446509649036733411857203173010828267366902436622555206047657900118908988502848252259976023318674505769488325416074119624338001871080687728034153737747128539667709295354687239977607903155728580078902924526214680539986907117236436664653714799307792803147920785575271304057188635126212446127784357733332114477423126619680525139446918536147745123383867423166184561431377397342968862790038212612756342620078238598728904567761820100872356128827342313639706613533990596922504253023983882938058841672568679462027037059164865904753154823846670921234393574862250801500619535359389568028108949476262023694861556007090710096710941397733855258520415794342116261905690725088330258298785296236573987152244702233964735577110056562157054215120126468854182991693035192632288122507532805629900428109693483453439575298843082356872528776371601005335506924941647435421712117111649234740902347751075350650466221567986820095852853331945664555742139504809987442508587010984610429053097577472343538253113374482571565114678021978849337120691765604080381336089588126791094731395106859383443934230969029574254118017941859347173288943773427786635062441362567381332273352006063078063349935348721162904851072379392443074978423149834744941452891922513287920266650994812854168706832103976607771271072402905564261049184960145365073990783859056823528645092141359689816153116302978856925195779765380717958566851415589926760613754567834512549895298471963761322471756260529080107326504688080452254584172453380168116200955090780161524242744522907785221887496346921513301570131993511315749249059835014229740638257974415010052997606659057049384317573260456807131224688361279604491531585978942098753094551263669789677774757391573606693152554178218610903785433086254550662016393836113520273825069812450365393689161923867344133078084573824371080282042469671837930113008762357546853998716261695011399057511943889832632822466223325630674822361465229257430494896085591974088721553344203492473837007015481889000112954180891837871085806847762072625708989172659971555745289257104023992418655526170695367294486845449671908626230378103505480624913595848175051204499580378147209320184390725392208776588711346219227820593548665269988907580680457596277276497651527947830895454516575427657275075136386433395856991063957267309963608786046465929489350600288726099139629823919067794751063922566196943001075831923997296880794997648346535319552009941234766135274162610278787414250059496094161481606097726208700352659845808683057841101449866047258093971937359560096578965923260421282844471926030534912505906554449800232019514499766236466128347976549093617364582894178435903534260230353680568613800121755515411285176680200293000913804879359531983445206841383717669229651342255902182348653949723074879102739360537507240789576064379163329198980985246575536702204225960132876649601457872760459039466936568250435294550768935466011108238883746418919297976269965820940677773031260222074526292965318012587585671569505338300424265723406963261048678584115894821464765545008753670896945600510850768974968446058289176600160187106664000869188166750239686601808197650319287816866192643551621902847862229677509291564108501692657182008284194148340503744847170310734140335763872455549351756430628476338279813721551199471248663518697937181205001785911079368607618585189409107137368596637974036658034782209178767292817597843459138248505424508051988699217688535547948189526221332051917704186345204690579131387543558013467452098685313250181043682212659804569874315659669694208207021908683706856336050256258568662824989183105623236520508215282340803775827506087647794837502865961779646317827393932284037401705353040860272993748801003418059361679932095952789640923514463288908214614522639865450006473793175315845472539965500098268505411413325797840754682932536885481955133301489564233331410022479656658837779583980346516325658925348545477943746724911287898816186271373041791260237254089928532464875392629068806762065469532174023454807131278991550753095236541240725221334407522831098586592841494497275751233810055566171738547755344216362878247597757250425892314627173610250045068633655400116912993736741397073678240216341955160527333752336740972327377564941302412640372875133908758311705554337856370564384786112148638002414755572165271324804421267304247539948889607470527454763040153161374238151109725207615502054546198788994538866720546220599874377259610670588663564249301733774482652174892322652124257881155041077898994212252791033481299168025156593179626045424091041417332166953155969613778601014798127062080441111921196652254904096591551519265665927740936731874557106204144415508767436246047290938433458899325937819333930222954616659023983954477612680878401306550723722010302707114401483026191312055422495280501116654538210885298093597223417140153098852179807990368678551388004316444380802097266760630052796245045324445150140491283149412547081702193400599718147151167393053011248900447196707855769211337105897819535214915056544266844811909242477722057670104242542894327328901827928917020865676614513039519789794337560462704153613570237339616514377359272467896085870429021566397956223627676355130017957601355674513710432669613808234816344695934403031562881948312061884968832608817986163931732495243443977057056914995199383478171525183442791590913672877279175316348606123389254481222028965864449647982368738432141745889827923588971956172825337777145948334811041005433809690389044013561624724311289185852991979300599115190928632123512037472415796267927340162293222657148412426148938155191005572343147577173523689796474733894008871426819307135848417134413375743290902013233046704869658347038701703671775445248018071189248837199725908068822997267775916308443303062318109929447564165590616748494676616316058640153185608597475933643679220332330279601791304454019321269031166994448325225620171122934807754289545523009105263622558860708260143853578677944752413862573662647756331176172425117098845123563405195522074448021690963641047717665400519196022977376242224068996212307095066298120555659484272909080844588707293595290414530443031007129380907535271021430064883383482100870497510957628073346389834784947880903714586986646723100247889380287550901293086579222347378717611215880165447496276434278501807026756732922673715773262923503771744969413924077397738406745290885427495953868565366899100506710493537159746566228794985561070582194296331455864119611426638350333547886624449839063602428375071521210957272792654107867645464302079215350514739167593591697298797284886378030836907994296668376491509918880652997650544443357271680246935199496111256769280880920744993625745646454507313080408485030763219953034437358315039862797091848149600010715039893083322085904215701414416220769981892002590228396610451315040953282696084762224114732478285561854774755895509241669403437375927514610942071945150068418348527443071014390626373947450162562918106928852017968248191581603246094841095854337733119389561762765227734150676837947436646298738553126862412735768057369431795268552882230366796299913548916255818729413889276032532774594666332575128417011442685519779763748520472365261932523385791670260575439043516251453647226733436333981876792846968033682941987209873089401062204774155060519397085345883302392193813974637292374048236277597668697874446953633693915278822007478687898913001768907797931816211554889259791882623305026813930318014327307342179506969169469200851906764143310321990951560490945820688756531024528963273132051729700409848789206068282282984905639644918992195705608988590153171358267091079605289165776020626281826153560766789582744978729365329171908639129440277451034929698882576199644756239555617601156330179029884414343200546745461088705738465907553411464866514699066492971189183857385673799975844317093640501873968876981110135901121712465951499912598374866250754889594263408818277857928466521550868944342900188613297320822663563532395613551216827494223042486135519336214568845621645195936179227539280518999651829635864767913883590555560133941197183418411638691768575286167716149350803044483694756920816311911944612771626587826942680269435320089676941959115150733086404122157814593162606498627076959895360558091582830326624419115719340306740066208619495750143184510365134845508845023760684659324941797294422362005017445529596941563021233816917382540813158486326082403638515089230341821261271291244341747234761414045949201238226019263853648505573853680646571803678564402697884103049126926533120838830125807781228289379046768238101141645993443057242342645811235437233919056502943033406139002167400487640521836085250123748990260148888731110136719832158190435043682379121671817889429348384753454881113530975679103018004458902848847469861021177911007014173654314558254803495716968156352787246353218786419315633772458940614036512935546647339368441520381509401258954678393437330191657809525148986331847866862331106523384847146664643493139100612524741731857240629019453767615240740476805280108500480497282833898181882891572367715200313259362286428717053611149137866128022005360732068021130210539726826311810479947294597458192421779780259082903433581630197499439267891763686485325897647134764279538611924050072324602895690924589732402784803176001745125412171425107824451204306160632168292040192708462100922125207308620917043944457062561900214141507324746629868134655756262308317861331852063237044341018985910412579261891713599336219494376713484039503903329939226830690766481137264382568589477615658120387575481056280299568257139189675790292670295676099641822768929886285585220006198947459701200927005753800193755224254166275641446693729963677496187936289991240982883173016955820030337004071368336683535987057007060413332482193644855766466036893333530079030581729172325112714000963725518145266528943722129729849781541998370624016400254259625779797888189954813039792548771233823756003338351307034533475081228001856355380096472822810416953972973446035408526080789248396746371166589461740810881354692993819135292577535254005636485975843786571298120724710452855719860283846290168926741178482532005047639290572453784818248810834781806997128607015295212692206692076276671825323978760094550842228544960424423408909240458775934016388564560674164843071732099498715950236414350289188853784681011906205527885103944573215170613894804066384612216975484223034025444107291800214441058671502403232755443684088967582006149773438913912648776953828121679315171162504788303461043402333415634378239425855334512133853682213491620701432952692967661989218582228560666939190645509093440706131178811380914658102687228757423847754439919382099782302517466148723063401559689178889525371080687208628143214891376415559078268829323027616474071113832916140590812151442073761540092384573542878416908960736270042152228618569058555764996866101643456213988472350584072361144760673272576618634968789574989863699387858832724513123780288425902521457315191280477064844588218876299197824888311530181534213060075059247018152801052982550122496047849074065855292844935363644347949065378046834002894241352542042698523878098491858037527875732662981284734358245030131481174456281845073256364892690114890083066247483679851498925615737951627540795051046443458106526335389253590216294206659451554036544497638776647503985144227838165697525541020515046925846350885686473302788935934644964180871264004571181568566151708762153241290864655028784191549668073036660714583344064073788521294305373450656103973675368231452580258684927159033671862316370548797788210391085537021971431719805478258519942392931318930508773008179458949192730723971108728442469971108959624595933555017861206212952570595307566247574461157041588966495633534656881311944081363559325284074746835459493246206431930870961197964252380947364333616539623212089905014668630420203342013102698128825621022348020543193099125611860333178034971385693281852995687372270422955152408023735398430599678744585118022909256199565679181464187908501389690698547115639003315985831753454471028346119854205599301940871517528387804264972768090549901496374828750614251655096171759785599974701892100209579425966912847397120489298647905338168811477923579780155157938913764896119170936534104012347227595694207583830957968731093465103855598482749606688825310153956641203850156023306696825024529199045209775248308750723249888394724221772107838457374099614735526147073221211186204418324899297750808328398557242354892891057747173394481477928174296334509948562100674346392781829726252905912091212536776993343983078026800847985884099116257695773610985027302759375483231058846178249111102851821875208987465356066197762527905087080968198637572115753913453154004705461950135130346345117979551496930568832086349898935422259385305223229282743091542000854619419791740592317295979700001220799058431598202784187906609461200655534127040453472585610526496181350921679040035524949619935573002791066038064583570971064497623540300323390189932935181468477268208254530655261359309352688954671425072740827511993506103926614765286111313907644590894479220000542783423064534997811932005188508275516954261127156134961711022220866467439408788540544994101653236412052620544973803965723125497146705396035665863119228308440512964624084730718946987412356341456374509878306204195005782018139471048720301045926925267046300172825908836880991220286181172903934829289505994282254468975329010047800963854533891814765125492119689982479854529629703848446840111741577643653498094580708276732184432143789997099572953116649663916350932199755919037581476875585300868140523965488425003699032214711021232739068371194814286448074846090314799336449656813800587647062685414017810862260169719640996657572778500059609587297884101159541748079595137823465271450959177442247809150897326985578943007240840947440924613946116063644133695329224999764237637054565971287226427427801031717834528166523844570004785631764095600317109791489724398447258590672750680519398836923792791662251672882840246219352655632959936354404181165623533704240902499373496441105659130679511486034926476787694474859641284035787966271597693958266796073790069984177579756339853404580491143317616313919761308944586052876916707347114595176388080683478304448847260433034665369520071248496931298703351652842919094559517307363981627648321132588126981292972487556307693743127427064336601854347726546267334704968537543261441814028622313828966465121004164554697451450123198532280845905950403532109572800972767738051466743796051447663979250952934214146542658599421573935345370118313888068703164638641631603801688502663821720172571844312534737239811638700707696002630594204871573614967944378614695333768488300666588989626567425198101580351502144291038219575445102629065843721046743059603386642379040377918125866923086348864359589843916738343986043374984086233414510181328243022329177114188863503791280988842297572283089885148547151507282690539093145350635681781760358159025761948316077034238067028752585501640247156574021483489062051662043763363936642490288108074928555112921625223102694315007103556448856841333071408023926476549179156465556903039804639833854168563410970477838575549305861169839838942195547465497506993766894001438355278175247386045413372231265074245221145956282446690159843980425202238044665785909742999890254605916505016054121495357634961621173204791652885222527787187913711419426891946727240532460951905320112464348486668618631719171905257741329419168601277722879526684435910505163443119945759061783241419043774130039371680288039962312873208759902822411654402452042429552402120808637197925626334456111476739875280278302376837356020790507322393769970204388512492406183469795746468763226678596007761662420838885312068079406940252623697519225454881512129444977577109781204905800753048250168812828908517830519756578606627255756153686526627420160451311523328497426597429641685649402744548666418242182515526097869089293996969623991829223922338932783239916458389982511631934903920210828716565137544974675377953352395193727649969302526571285453603693085060146503799370919723061434540465132621933742827349306378477698710815291314943964398600028925199631593202719013218117123924861074822286326877823791871334466884426710880722252034807282901904226207226260913493088152059456350470799670592811999468764772227535965812829138155686337897087209748570259173305263082201639826168934579152900279603282170744316122228855263852974747715057369143525061622338388202622452491294617400632920416521701923142483319837956275832213364864898779261252400277871902216964762896402296477536964383158905465197175577674108753204728042160921053380453617785067555593829458485105577607878548389787918882834254827586177068807412528071778225291237629671046727862683898096746071873247671297402683091352553491568378475194153192255834338610482469957428992774573607496910558616793717250511351872067062125122438339553123721867720019211875994716470142780916216238228464243276468286058583481734026934409098410802868038456420651302918152565709524221240405121352138343337647938124845676684060360040217425281570371750027921692753595004615400688154596333987729865870350021186114391320854096176380573582305056543672135982607348470711721238331771084537657977597139119743854853886638688555144957810168080871307952283243467316553748251292433490800770233588241680704806836364444353920042014605526534676463543892065926247882929294107487270884269059071147650260843472411825407737163445569205795170282580450118838946090257157177246427087890385675976756776251982789833183676885268667196701967194979744239420975797787660341753462493579310150780159390038751106654611898190982483633409060800638252156957081347810966217943309250172010072804550946880097383780561844290887933283903897420872379963477140121602619434878945852825404800402893345867420475334564768287042024286604181621096949622175580123371961503677146240302042841569156719483386854401085925540013187877576489954991417816995812606563546711360599371400194902828380879596882566704409018378557358974872421053834234758435391612407436492284346431923421418917565535090365710204763617124337849130371670008835821169673206212620944904542000859487287980174132492964965303159321479889618771882942802516600100749343139104332665151362265945485017342875689300351454868930874165419722826302197126486595716544359005779297835037365536509393975087726614400047426469083166331732207685672957586095655826781269532670065398102254335189271137721336987900309139553603638479158362385748251460901436547938977160701002698079105597377921830878355934064319077171101896517287012180747564357865513074455987283423355228132087582637443294060060654001928861976652938755851330451968112101367895172827046692775816305141486461197750679286790375102023914096006151451166181357674267212014868069498038218085906607898977575030302017311709126133062951403214993028880598948119433588059799092986717786958736525182680497088400470916996818587892030488054249145331699680476933183559324962868067573940293754238578199450158332634849373768745805990708801331870102039108942320903217656845947860024090031834067875399838507866296297467631279479066350700142046562551735542357621466685229337957154255875765605071106082774443169881762686986830231783054031466819553594631638478994026137077497513711822869227586585210721513591349900904555059000950675660324746386424242972359293476674491120531076934335633176960920841215594439693041671739637503404678309581278598992495035857323898965706052987636289197173966914178107509890560912867778860844597044860717717002590343972473785100002892341335994942704501624676859515318135097301198988464729849652683913713107512765271294216298363033913897389990956810644142023284038188558382988831928407394918157073650729045166249843471299353234319344094874673266481432858390463103198754367493622765486361410738392321375796985141117168696874286841612096135291460071522030868505766701533875930146621182054392319748334798868647269593875362763472719113879022596699729331829166349247623020021115331474285671810213804825859025847325409350066332724818141365229484948904083839972244522080028813362522572158226899776493422394602504995771686741575555721486003978065388200512296774081198402804182045537829588250834459490390086509007860906118096249028772103096892859388596075788241543675739151042396591317418739663005455681358094310757954018820148743353427510799852362606915221861018536691638397227856349554894348977706892083574897185958929000159030122849619097554766212632414908229885487937692300214393922346059809065133562544585424443354994662818589006543767978990571437101607580084783206096496247398716524529761980619036538316475298650259216616893280687199195675397856977825668410853462582624071316902274898298315135060926312565601883190559869141547770866053977126155616918010963232973423812027703923531549955475525560316194755263606001767510315589108972490035798703395478448359283928897185760517319415365211101206115516468075276098630880821483091464612344611237681879638420658093808709566145221636937911252888037062012260452818469334433559545594991713660374296066958691580993737589070969817722976186612152700456306136894463402430476303214612140896262284576250998315639903531795244274993912375349256469806796553829098165669302783137234829722679744713299204860844890265009707383928718682026261294182894304412124281995710824744868442885157870983397325198324008704713708228989427137842741470517681223062608659252062754406255993071865653756803700398567329000135442474196402668270698257680707444809863655500542225902908298713827905074257778672128438125126115518362102293773810452019927411167401240014217996157516451114530705970037526208259465037971752525428015499346845904757738410287121925958441394015238582281444620826321033108511006859916727984335505920898109607547981122543993826811131063343544680825702986105140303229340158910455902202826207444424936337597659177247220573049156328879112924143473721661373650736565294819775527197155886346253923295657911437236720627158940239766128835252247805082481921037143743902562210394468048103662024722014328514124021000828790134924751165258696936904359269449026370883016932031237434209387643003016712636860810787042319321849157190834073590473551912670914137514255983416551980193598663128637178534766134772660296438620499931239721542882149766861031851179349864088174534361487601928751330268650260091051343784577254698099952974290149793098040802478224652507861856441989456802715878889768538458396658451496496482991461687903508426701775613305242272327703654460026042408297559100996391794258128414275507707441261427747413233181681745326727534143422126843616903632597126895154837043142724817165223531830987286827041648482031237578781733274635303337739267479898662501330737517717927786813702806303983445203564064774798957240097287509396757594309474831051823005185618453128134948784731483316010582779319143764510720264733552691834662003770000756566713425789947306729230659402421769619585635177361294242733726305392358401423094489260536073181371258440712095534909996666213397663969345275578105579589998416079105911985379928861781187053317869349472996176320323745906581111047324332377142222115480357113352892933582526559314692469245453150508961389312087829933298208221966526068540538678321723005801118676298473665070921673747928770305959900565461259975039370500476906168306914844227090040951204744984381641500722626639034492448569452004494792274454807801320609625666031250810757583773461952998727203965957944316362794287668496311974592829532109229079845650772818770564048521231808806726700201419563082388020215488073392821589651858343434657901085259502687378681589827313704184007912036355167089624847839349463598830299167691604833435262355463206572107410002184663141198979258259187359500181432389424818587158822485097283128176361665118955092546917658743039168599909027475480062924500071050563553330327762831717099544740963310765171538592625530352342200063088710236756000376561103980635701682308470277628395522416316677572878492330023224580994611617428511373265423372462317552709009967035926662855350805240710847322927483120545033330895733500562925834827340536450645066632028710369358711031140175053791044589276415120451925585433413951158446037845933129212730166340159356052124580509605535072206959241317467336218319935728248626154814720949178614173143507612408795729421085086231583307015885338083603644041043302550657642107566617357064258628031173114917866524444085755916003148152087873463026211326347982206933851577509548998856410826506048034557590708041515460833805405591701388969553217866313964953166136585566238469502110381307882931768533627875751393102970110168570638084857368597522083427704200601374719797611428009585897718658110803694158133937809169222754819148921107170976941509133490355996850896183461773999953933271083260632492136722343147169990240327344270079429980720454102425902190458108459888226477364151226323792200832471431943360171997498388851689419402195234586082039493142588708061902221336004232974632074886627961892881947073676434835777646434826017876749023793048184928366878452227380501116546956046802235143717494704335126251827482176853079672619003209147766937981995189954379745816089819519059613830422086668486212565547017499633114231458369862498472109399914855491993036647814716334847346237386104749724903053999873041183756848910532841907830238367218705608691248282129741238542616250587385269032476968506635105408071598989135107307016661809042043242555328560971762502216240150783715125874258174515289390401620921955715934501257057716678298930633826958754233349555319299395809100861716367917312724062134598236300065932588196439835273269132190822216938009025851660066342099034478015298713622592208328944890382833253657840259851591546489009558850509431626372880047314134718925009821464282274103287807311145165339850585004287005458097359663215496216309424238631387528804685044693764884241039216372477845816283473869352220591943481469026281187884286383450745951835373469306491080640301200304808027446159438567498823098588324450636798027596192811311939706085721669760938766245907362374529041330423995992239405606581126603735774982088412999480904841222226396037743753942255900379357898576608237999684096956950855471239886012407832793440573216930693985932720460104266942832824640390389867502189122064912314314916095269701870117134671861159906020134028774297620982573552137364883768095163531174696377170427641823165851215495052153527203790874880676472826286027190379736704390859424658586653387711279060425468213678916852393472366417314236031013125153881276487104083215511215121137048911379619987445320957958548929836940049985658977176073921262105119739762961823959077031977796145406607979697090746188700431049587329475186091713757149490675322103134261544996393649491476272699260200508209969631110869299432002848147602241350885427603526693856073794156126872707641013242830194781595941449771175089733033525192557903126133055091154621960149067625738475767185389761831060004051927964498683343679899896634511233827425707806494139755634277907377826097043214438018916269926558896833490681368218702946115785489067869400496258972279362058024404816518990404088316246455698407327808621053128314944490579413673480545406842091885098814546436496169729593656570810863082742800080546565145448949285282161823596293060608938036139649761926233488339430233347370116384158782066377825250715965296748000830335931811007363229501123922623099771048076900920198542400184934495699200105769483340295745140103278031222350524769266133380514838657285450404022283257740279609819709712347076486582791451893294876379822904566863609957117378081451771028133326282487198916399985163470458685565846747049365498770836615536900695148177255491725603229884891863130743151914193490641701866008074481584663875535100349129410866132700991181024165058485742800867260072877987307432219043403564391174467891161008009606596328572478403870347156835472630471746592628722979729781817879895786848300933504239830501907222743975703217072037827223877829296579468641721395534756032920705182462393753673126085370957029084469332106514639594628364053875768891706007994772929387690614637175892584506526845110448881668011186290071709494700621172543366388320247414899629024062426325383629004996892278261172211833191931687635531575283335804061676996740402997094016184986999059853731681088097190583256506394311464863232346470204444812901095501192371874274816614407193618952352246330359609779588482798096589639552852725433488254045106515616484823016344409557186328572405957250329283774460647513211106661188123221692927103296192586379814157494780329489799214294182772937989415563963791574119675326500564523713848932888258691292408303284598065466925315997967832707351086525759955226321384584198677479233616669940198993968111062956953413249526115449149191684680311414364464946899433867582986245702404195886136884914711028501115589294001952618015173864017504369853975722478158682448862039965754835903676360833354944493972340835944621723301438966502790701251385436627126529821792471160122956490552987240491946754641353775110989060751031956640236158771901321503213763568124520705038127640377170274871305194306010527749503807449856105292805678068178424379905290412262542471195110767613864002725308193559346503288664732922292504066889528606320375815826669953048390140996718874830183235862720538201964429560596341599005039641986783192506577541884322582105448508147363613904018054895858002086775511526545878736237219125050733423403895514192542833657409410333728610731675059379182342932735237417866260403439261164527042434634494332194956403793893761303897651090865554613751880610647422743449992558553016159839107310129557137408725596224947879793786072998662176974186798950570261465982817612056089059460961419535128475612437931780563557049044513980509365341178429579594452855904477371363011070101032362664250291716625062183498559776567259787710986072041676787640088271910667116284520480198389805652483371879833934008537974586822639598159969381013244569078226683206026418382900309861158622289371382230083194617050348255052521629175818099824645151978539794528874872431756902107517462045221885836638759164290172826477519780213569244765989224678804808757512317069360647181190016910907748172862653094664068698007685078495155234827734124664113999008858389168708848707148860442590277924730884040289644018371742387697253573635666021834976587764555704623509300378760958732613582190022536911346775218588509188298408920280956490729319825764425396532531936391883341299894981851236488253213753182824957849644257853304378259737277566171869995677715414917963690873518381205514618610801138792098979295670261078052777008591264467604217240415533471073883100877089679219861985521355207480622214946400084834884503103387763891647525657949464474128207185125033428621330868950044850391692378295509642338392454620729842763411190501441036653817883734258277888101179212469854152570748203660652962183243876661013530771630865879166254623510776050420416454457080603457771952600122676635906536028951602951603770709614469540023167147912642013142869545625893642768001689765515457938295171245302092613304099312464066462938846807033890044878029956402901224632467407361950465019618685180156235415811781740308080095465942276670990683692659401003052175532335810474771300500586151959749959594804512660460238270201654701045437534588745631814250367691486582003674070097503430293270212356324242083913121202719959578982514524708313056583596037356731904247954465232863092827185051732704211518043666617963180618864557321822619568714510112511524148097560445133326938031806864108208100928482425150156934940229109847836707389806242178896207467657451037771869687619337178495451238865247432381122976916159944383838497197282354995574392961852638065550396381761690758003528572279526077392300555830442945149578141696721481892247080955817391053398613693187046022000165985729562848460666274544543392763764986807886712346443819785529771558514910483081748241558579527542046535629817999838551204544285680232549841688717278249164669248895445403272353945179492006345992985585406099247849275685513817023945852574696327055565898736864655501604401917096230903772160951085430154414960265919727396769087891620804143067070162258486388676016018872046895567572157149984852191951501719887456937239250414266394759159688583174386222406053569381768786095854549082993531941213626539785284670294390765290619710973572207596605136803088555666742521382418147061938345263726568734757106528661821690361305023154022431601958441419690902630466142904462020140606205309322550016842942844884293155571871313431723359286402106253952760146445176886898345821167104280643470440545754770621767308272044122501255850819197230618165133745332170808456015430814875544277767092707252786568969910489347413349269058725535352002817896519419302467552289167941734293997095001221035992222830779143640416178277708560150972699594524326955598285257313990541514124056729981539524068647639286205021013554471645426416941363000859578544337524379891817255830887138959408087999981614126831338793750445404740322500613548290163535295025827315582703193338723776501081157952641295157972778345494829876424669193073658070702683955743459861752762143584212963285997079154278901985770147167040046933338515173760316140513109624286202864837257634645537981167133176830885431505837444187356931599953233775601573418354913238609399388060404447007133918040016616830877139584199608065948110641379185239857877229554952380914063996544484900196431812125926953926305733896598639688575334489422448840509536968090680941182878692663054273119533842441989756836562829192903488085738888569626644039606786377322578418476920178765807368407102048741035579637257173189805354754945057550529981353960926492807015912321984805660776530339656878753739137773476633853744278519756570585823193157033550703362844967811376070809723946614299246818224420318068367876989490895015960202078025591920805931242681525197394713853473126995475993674001155607649481434051807841435137310576504053907949405976361939726570128966602967365150520160210546037438697356126298330766277453815571254378145253646860692724560682656168387972076204873532053216867528065345986388393334303123742126621261894404241993400902073530064356677975453673202495616277640539319557175882372910433697537152294720777137387701196583862904739069770109895507066624152840388657632076710314371577959326451012190081605141397217882825852109578000615789200866463086391294667701380795966388033379947521687736939028578572130258856753074678286379596561409156462365124199631484088738919914289452896821938074729030059560362477400111526937111840929282236733810579061791007646125988567601429194314063332892585893719555721860697205778248323515955649629792758131414358217241150501782264874649517821900071025824762293762910197038174160572411005648242380648800079564400739785539835614110270630253735678190028586638064575069124344733589704983537135668169166315276229980587164575110813780256478913198897071157038370109429880904521204127922854222632235023340201213026346869981143298927021682307780475397692052352149724357820986374328339184878231462943003071660782797924890405285521185995230531079059876787072275068874607671045030407881189555122585550171783933461034103971259395485867353599414760822172535754160047347385869759872500318028924826675025379932215771477318003702456982799769200438405767940881096551450105016640482103937329220830066063827227591923905609016408781308926043701210952772141228891028045493921716214327690607222123173039733485525510807828469543199533780739500997191074107320343066785116025687086815869053951801420711182827029325121880071462496831614490279366302194993775092543853274467773712455872307194659848405711943035254067858604389238724570478932623159581622947904042116291435592046643207425164259876278168705544479916734752261712565584917490589615834278118212740097299459307608022007244861166815509871089537237023058327024665130664742439577559248617944197615710088988029673514133767106171713027615889463634558447367792736357503206972078821053154775720138007115694705200871717810212449920481095528783490522410173282778427503576912368588693730618268361555720160990644902075043045348795647753506203874972283875972403847506948307640314887930992436094991346947295682983564860645046321595095622912325883872279414432675853816801772598564483770958673204552575581688767246116095077268648784482155308485057288245051820277745345848910132163684775575406775318850584323000541451122711694117728836370531660166704493451062783269557968857263178959779121159489171433588419754567988035425705144906417633355065798369434609273302393365769804599619814945834594234567427727003520120224286718880356215243826160247257436342048275547937890213618402968124359128499226253751210967579272473703348014076601245300212413292529531028464295455331411317720665330958803811396668980645525818405690452727851373634447065909683828882047060881011015534928989689494029941045787953060178457311262624231565082577560587549024205470222968345583255965584702567394915286939193543246019125725802743095284477059057361342565327156246406442430504325113797363931151420523404346208380515888430992659225628549729125460458887237086609432782376462778984904550021467326982420423579249580950248365848488191963935885104288327823174952705997576107607051492084255379867260330563321092026532264712133265853431493185497365846386614582062703039098713509767393580714533848973628228460547537331255238787822331854372668909978784634903977595361783472153074095938161034582453615599598404507284710929676732524120693550453752993437720462718552780044888498691179112498271388498476710680715717940741052969551631793413578217470274526194889152551865795816341878723870630847169151966953372337049914671816666433049842437218882229805195831292493451764218741639582253983389632023126211248028642350015378183378653068866576970735424312366070014207552384600079359938462909224095326018559464007182388232453138833957533177376379892145930783313783564902238801616349440504394180822802866918291064322981121495953237775661245208169689120726498773880044739953227207288019333234124566485461884478928372935996337479403393063169742546440612072835069256201404672116605119763096014449096011712460224316235894731024598934005532018695310635880608487051424136520562579480452170681138506911366162199944509633399621679791720377462613066683631857176230492658322564791585818999212994228996912035584269805358694717972042352891782933117043830183713914931224239886208080106219968767953020485751128810448469555930193677621163824909778213354102614321625315772600941454488006606600830330605868000459265047002020433598013501942497595738759137798307432282253708296857919620405704386144676394234181723692764527790947073102282739078634563112551416748306624366382781784658140080977349693814682130302134654557325268957054716230542456766981727109922947088845196038900090305998274017882617392955683619653191617044715805101763082187834362263125779802157611642863178983734543415905555965523950305333812514103299279032522291327669510146197624771990264590333342426024009099776390883665677977348496514278038640377325359031274608116087374805917547019023080753894773821380371913551261336204895313291984718544380718535255811827631701442265322676628645373812959240513044175229808785295644934511895945521464494883967719537042100562747553864989455142384180289398037388159808066772568423810265974495234112008195051841444464323312961454778422432829594688220289277651414659881339063512965366306084491730933494547453686606259690895221056115356197703707866925456776555863305512670213990322664833126406502775444433547217711176455606518170354518917522828370997416605728777395191719122469506100927924048142200237645321386533293039648743725432045816293081701305186848833242129564851095359864228949538509343468815568393666532741272366834948870220793651280425491671957438281359595494176780249992546109480228476425963286816371838993408565660001732809290292542906459489294942292966630093269980262293062488558462501227611529279470565196443227084083063153245152118857781360006390806723665386151135926887638003387171488190288566513874429703077636154343055307393047857274045003857245934375490589003803632593229911542377663771722608818744686716291653790106804260980828254045105885098806412717183472095055712371475974119130532813154200018120829808783086558009926085104202458732694015244722727996024546002916795938474616161811909531127007597270482259073630335121949189470467272260188210097468556208433491939410887596955215370171453842524830919888191965299070741489893869704571550905985550075582791390562181432143890887083006187829561622241499387327979996586956526230913196854039385457377685250564692355889679109506772943261532845104889864809663642602042044240019066286293381460736093699835006329840977045079831680281323558809905149941704257447220296853442094372724542928436406024614530703160311207860972477316064304367256645618724477651005674514301192225003070154735411476061325655615610022636178308529517694252094777073312492558934528528555202898690875364741956262827387346488026462820989607796436534792224212573042748964834617151763339540110066750615555165084545167520336572250246450230189282139240417693574803012887674577327875689695231477203752081228333880807197646110947916710264293842206241436681179273508516787823711846594839050158396374648792231113661228716235792330420126877328400444377641070874944346293653136400284938691415699108165852974466353556526385658544565446049638213991989101828855852950505960006020916108240970576260388243763821263414429740259244549832673080332189136240819497809743258575405165377336706761248765589620731486169580024465020348487165708241209178731404795118010239405909413218480344592899208228806568088456968568106202426947533767333057493757364351661643923900031757116933230787855276979524128639176885669998227218735876583088797471275233612898139472242142431599590441485622842192515944055412653589320364478850873915039387064587197608166129635511036510479991360632047792936859432445844296996618914516965354311678640128694167524145863948846672044904593315796069341002827146688832571655718685282563648546983682844039140964569302915045783013450127817814489443934184624884689832300932487287166239447894938587014744607437056116529918625989459830279713773403064587383652805839158179054936758120427575939802621204218204188539407175280665250138789167581640740359840853678348134146656346626484976898159985989104754938136617340347352569720663656435366916209292782873478036770662764644708206650295258842755641599812176291730099778663564094272544194865753458933832682477949790289617024819039077869618946566964230794893593807444237101714706075478086201149985784853370804302014064830107143364166946327648934651237444422964894907749212226742257543670220080295570219259169769652003150797171023907988149132923400712146014937409156117313358882366262020083145971995924273487950961834862174557244798807734168404387750339236804685887518099434720763909140473735240183051637157541595943672535679211811227395022236602552011875320908215391547158612975104188542115115136736290822596444519900373862843245614719562433718310122395409626181937941334091411184132475594703078441284704284369751809589130712326197065932608803426132957265486197403673228849413403075801422420870653324319110216335595849644629276937723902604536566326206683566755791066366575098550351206181819857616626861656096002023060684355821828762526270948410519679412284540293630410204703973596399869438074878272255609756396814119627318292886624971962290148160624359921892790588032000272566348454540417153865165014569733662656009142219583285775514235736990465874502129816009465630881562852706938168206878243104849109800154504887069481124204216459907835065537796926588424072068847825430370136440331246982164169378104273118468074534513995006751505062572164605609614756450547978532889644207701168378890504557683648516034035853168048111023729663009861856694727234596944239595177489680400845929703137035621277546512213555115979679690537317832837185840478733255044120334863195288009320569325617075448452495178278574426477738525995924820101435811331790003855955851218794196953922167208603632986688873267846832214780028970267907320211049900336439735349228479816393836285720475771744830410951417892850944215563277322943929090304268638996544133426230212697331991100667148352166391827330341510769486187531199926073796132128816961411276424978871963720875436275710278174680980424407558520193776548203141724819356873593646544503722235198208125802776246753160281954875473942573256881362532752568198832231240204502010748176088460234375724154885767218125548854263722849730345951341200536215834342620887635442928485088355871440640505256958487735190693830517410298074428114204501420309153074490365045252814866138111109285640106207539254456048918112200048518273053710507998751770742170337418041707539651728984097802578994354920681569388925279200147251979773869239806579649722101869347415108637040830551973905473843227143716149616425883347840425828985225547710054334524228201247278043730069946032208391819589650681331824732986219530618343850059686897504257919567556330241515246245334346216399970698719678308509144009578817719480268615411693814251918654676844533442440669008183538383116377908158377312424330236545915575206928694246295690555961752683351135469370750235079398059381891262674121549588285982036721082312999610225133686329247774098803324683826484160580565376145595607843605752718151160630268307111027806185802552443436775242882263686074684150171039605909265703907334834047635974890806514755742485245533336108372732587698623848741124572728720365841759215884186297020418082546996294498632418217893369200038911064674517471090940008854163110295199295776570476796180959843243208881989494394063284914539300457701639999420270246283498285573635567855967675388989790158075774687176243278300804102759715766928287082433666461473209453118288789676924394009816810911359564323241362230638202346402753540388209078231413838325056285735454968614805306143718878296466505804747333491702587756994575661884956104820371837100976493943404646199903005685178401009951590785895149695124220183704779173952359997621106273870152591661680286152936459246517942309237725886477829682645797944439416643830456881713174115095699478807434455366570668361324638663852563590046803216286338937296418959465570946696740241051964948238739056090045010258248747231709845426773169756900610283233615295660961954247060210451683016418060591433493465376766330504995850775216870503748882274763592409802991888490875248554553217804952033475279112308262201069605006761709640888984299271246490823194597010507435932879858818020026978845511445556542803894343008147706875151886697813249470577929018776922759612183544277676849790705951280941951437347660840884026211822866530716862964454227684860825566415949806672453232426767245021564018542414256207986791234723266119709543635778470706446905643730017095244238907569100872354462413796789086839195432692914211729353288298485811867129666280528787864800730918771719644603542673570010681907246598515316241635437651598210524023218693523129800430809873786283922174622199718739405210999285249977607028682924040291878933394019563496744815409356787499363335313620108371662264883293627952233354275088435112288178682398276972880523068590845001818794590651972500059246394666309502003516889229409261668904477509908349247760192261166733501352869410898439364684833704023604642078141091135382321106849840513873193234169732196316879529025608906034822451765566027510322272233486888578505700455886030410207270800993733278925523214615689927848134169345799501832184853588859237391401479680985760101109209880187194881846403047387815036022731260931216852961710275935882795712975926326003677280146257904098431693416685204298267753426857111069122477063803570743830100452010086160700574607730967047026943699401825296873316163049547269835066460271881855615736597717857644216830191966750031351158156546373151523227806227525172442570629769530812022941540020591627354219200167766738897730322658966644101579077718252480860668907515020948302547510148049707212962735489364004273841156612439863915258392937271469952339158113812179454708697095043268315823252915720047581232434680438259458436511472358196083649226057948525817941644491804582423237879721579243841889166069678409837958333959784665705731768871612906753781260285720399316208239411504533480193270901070384392286974841091095191654460952804391906041257636045920198126825242236759062699341750761705594812173302902624097917939272140864757087973194522889207191209619054322812897297366150948796339998924029935438863859485295718871363953273353536180252758633145497082434235626683384660412099305209874237329539962783539279172612795479639587610482018920947734853443956905470296671009343535516359489200637839550932222605557862501475314113552162271060501267455037924471498506332576104545479331463206512236157780141675828493654279022365698039579801160199539410166200274440101127731346585921115731266530549782092297445416788920106328512245769343825145785144621668861176894753551872029825936188061253785394287861933053531336601216229595671814088034086078607870865088236249514727368435321390703021825646468006879599976935818760560909912691121091461223687522514196761819605700827193216217211577886089820423912956764178627201502337965398870242603735177460799902872795518025773413332301413895260977074741936190440156703450964300339268619382979959773055200940853276468930416893718103515952510112055346440080219817960934337662175475518551623541078803829433417276880526692548935817997884371659347382806296274792973212441506175498451631011873398487446439792664478104706362795789998842826389204461249859671176913399928972125243087427297332417508723342365912454598763678693279464062099454212474789217645774152054991733153724153979864951682407809185098270034649569914264180871665361868544636628872922900946777603452434124062752383737301336550397781842607567451484782177777840098987540940830887271222693624569975155397019333591561060338312072745135324352847838488583725231828503514715825234023446240369387325929742979821908130163337915041410593501874752806367996842336883124978999202293823959355015421818112298207300906905675962548167900886747098312002866964267555768846677093310245764555652733264635063920123095680744523929235586316785040558376593898156600141005410712799748022788852445174599219624982841994829570507424430963882535238186782199905366024829679024174842771840442166144565523263432793350378429815748099920715336929535624404527123423199967027098632176442369597820418113097938836771942736956853871207105994331006236867493569231873789790133946399711060908772213815321886669043511314650270619008472041350699499394622146123577603657105666981647293639636388237538576844349807331267782337434848728891120380367272246630508309186105325375145749838731070965540784044480123382894946334215212452523546160818587244976591033047013302510250770305650245257806156976712908033598907029472017619885045710513845663107444420533352729590447274573366247979125539652699169129150901969977780534478257893759004968428100533883920966849233085206154078416625025544715069572963598514879637115924667537598307176849500352893835514816698246707936004225284300718776489615080852425888359370379414761183029596463192099976003015158093208760414784306360845637611715381566777414893052931961121317749904751685263514878875712821898425683530881408742778420020809453706131839841262588859375718276694564779393958249116507703557135325009114852381324845757771823992252454320372960661449011008688145224151755101606521855653039135676379154657358204551991773864092411777656693609236691149197853185406513673470744651947689838416150408619589602881993067055314583781647952199287197313216379338815335817733070908255624408256609192724506019878402419076397426609185427865767738293505781882219094310719326486701755029019447587972292458779889969038432464094123186000013357595573779626686221755751818504960676746108283337306951078634162309466682861349449489829039142162183576359666094311997926407888578952766962157340255421555599112520715093916401189465743405059275470502854233819771820587950977339446825570184109194046982543667931310660831571157602780869461448638316287067104674413024516199548200915164137633723991902128989353408870213326794484111769208499438827639817650166313405592571263776318181663437126752009036050147490470283740965666552579559697536345203658633875653143794522676957333959287659609816740556653829427363909033223028388300802948215203157606674206220529649096412403578004706214303121626524083860007768678418055502717444917124075127638832694060995465418394159586166360151941456191154655886681748809114736671672959156953706123353591369708118006419287179095937158462307079340002005766417548853558256944141570658711392959014374422246527605248462870688820980192978210554682815448875924189600232611578591236860641380032559141433272838077852925111550689609406392707853878770685857550602447074766867976663945579882585553079079795625371746860989190720014331688437074034644058981375676929969038609380940237821164642707324641392552503361190388685690111973677939327282806416179840247799092531343007583970062530575292179958872117697460268162872233742081716861200029126654647919481893521465369311000992170997550477577540454722773973644710227303776026571523913932553771114461020640208975341047249768605710227214913901687994631869010025516905583851703770149512215696992007994199859103416118168867273920524896546317908885492817389259094498168044502536792134927659655094200263112663018552914231057970871185927821349311062337158619056271087067026359815332169280346226762786212658349527689094875848314529592363164878243112605941619897984485747568209425703473005520020946045812786768628502096596874191637249343122273977476820586280651363591505450346648262378299160983723564761618828515806131623554758633309019053495329545224993343387095884962638871163286601696580806440613000766976383272586117149782560002865663379972355121076752890784843677392437621372562482648367743709733976396460757534190296028017033556571551145994368924310206555604253607216091739538610155875891224419405298667380637482114148222489883756829965297819131634718356505875752108178449064615521828295425330051603934820894136703584596605906485921547059876972597852538957461944511690006391606484224096912140644759101731918847391866916567848277601228318755381671141051433615824714331324018466419983779489742213602797759786937009371446192845149558350230494045508246572127558888849421149129338108814070972535615237915000708526616066446045997151097440461803475684194109621145903400207458017623771464614269687416607127391724694883300584002594775014361533900671592432694895075390665774798126502300157552693901342201722932049792615370244057240974746384328388912739577131633744779196248716893024115041418657705648211744802555890133460838257721169003973130804566737810571269900774404341318413507425660048831119356174583293039016225657175043650493002006004278186882340308064292277878953804025761905467927534715620853695536327091223385370442803403282372313404045290337421901608053060539806679609736584682313840111173977237019348216152731522332021808573896415761817671193258090881198424320263877003745343699151121055868146400399417527059450496782831627117057078030382555742264636216878641172390130980949178914717071528268959266850086339379940497224764658151334945257851538830131497629248540534002785421124360341883778861381565840272051061348200175625090749421974781970598871223418852876397178509300355646394457924332871376642507755378775749772870261885200076939105556365931723063903071999786889447160583756197873729926471352734981417645390882562126557440528921290921929857552621509094428442118842485535138219934271924692311301356321839480060051793254938904323665456522123106524887379529429602960175660685146299230252849051317805651386516267323041670421800877499599492596837227389507601015572952942663581410102847184415749818142043856979849506678003846517317957774889718004025767241272752521501590170797016962142903725035091801704935860015229248508772650176877640990735317965842761820981990875282255796956790038433082425532918494328966780848402348289327965899423183482358507563744036460255361470684341355604754203506779892905224833832043517652297016300665151238316040255976426952453779012162233908118770299003923639491688083665658983423223695386681350132784211994885143631129161366874587272467902923980640271750964185019908319569213663715808553228173541646467729078839256237964037184450163481507281403136265497780308335028483782205642798264609251166831858330008237272351490720935801072641602343154241995290946609405322727225213434926117940226786724703295934527413131933358094033960482487400051355821072963554020489444406864312952642176619866012138929990594842370783477727828483784535026700961661434260585866017024025195042562200255898469416452840833357829983533147903839137717628673991808981597649182247434260965878054887418431459827195681337116605582823951539818433498540384919951308782512643595629942404112550421083239352389615031172464926207028434191010843287391890872013959260013313676196251967341496948354506201293449533909459814075498524039457763498329752849294689680775083603616661157990500593827929446052568467627863899372032047667407958588621259829333615663740818074752432451066054663895823094115807580046730581770434248156738326931388882915616151103026811704783667905263330300476173904987141043898180230403283358785342752502978248531079366918993836963501869240050555297710281077754434418414224088213903542661180356642148920053005493616241342561759826173271948419933064722666959847887465125072024744355470438746988823773502955308071699595843501214923936167857064316342253491404125359877428599933320012567722584387863953848452520574797926365868256066706553906096770413182759219764168806113405344997060700004346903947071286349054365035670561996582485422243442145533861766797416649242963506202560319491940656469841971470737380741637254562048161791509018781516424065136792429438466936261342841030714439237912425271808739442938616815351496409139747922732120606965077191404228839205929279470464043184812046944270701017983388692362974921150762725478695769013248962747090964031961034345909653966847575886577442304553993595854778281343644609466922848786083145050519385585067518004620372209140196129625735559773996475381118068377315555063128891326317867764704744441258868099170892522770428188777568891579008492071942316683027655365903133814682706132762444727537258307411767003264116326517367595665916170900331997851069342322414628109635357771999459689118630414072893146232983418541311205789028236049398815908813599355746878219504011514409576072108858894942903085047097972042275263273963607345640567047180293356422777831068629666507344784166905206187762884970360074370983466764479379588620475684647925354994837211522345412278843665069151825938506423004589398023342251989371470841892608677458962858629797166335799513191704621899995243441335922662378391573949406730354978510703640150562247801576084065257822194575745955729222222131181247588711001978839572970005826454102066458942655788097096568723616807572197437355929841797201902697831477245821796504333358069937092744743331479502863306657798970458001109914459807472004911439999900601258933175207603999318303335370091344500229810080669990186964449562513180638569510109509389724695071907220646897200164009819764889874744280358728064289792944694701954464496059387828518467529212535010191048326736514786221755966168658918748105117311831295406723278603532948621313617763843217287480773343049604148808900726104733932524185606554533159754091533438734027056360896897165572612784161154381204196759835933410042393780803713345977949832419864599030455808047406301467487882156853624323256179791694603632415597633846197335866153229471499506615798245747429524165658247735819911454040025776177832874431158319177027271012767080280193592816651936949204801293477760976818199373461012088412409626694283454080967573279893957645969561976195184371189024994744814151045369984757445080060027222472006949831366927453301839329166269481420512431222951019997342246409394759474231715040808044757921185688378458722222364984096920727044875600854114520476271668808282512355007469816361168141298906050307416425754737595786761218958789250514777971956542534126947361623496581527380877765169954549186118582029949297677949849316274726272522728809306719148177906968812235403768228748848711131280627059321460022300617835473111276564273548939584665104497393749996089985729595988992789322910153331538065601253123093911387833313122956026265687888934631899595709744128417469859902923643290028095112070325113697779693328950469790157551584980423981547212053508100573941879031741901139395508985977893231264573153534318871584108116073545497119948210550417533527032143025511259935984354651689448579683829635932774007450208457704493260921692475348521526983311645157125450323386749951547764923999817658381914464665358883989772827018117488536459078856966773506450782691541993941812683779508571797801562138838582982532235092600142573600529392530728522044975164633132646371687078475020448894031980038797703624431054693558614474035093087927978028554619649534680514033785516921519322013648532448125234403184755867156920902755390400043892736324315275325647793516250628939954771175323201388485793403798871473641934450045586223016170054286078943547561911173008124282622872889546441789310060022724020955054224422227599962539260315197341770479270278122938169744786134209413224454159304064977129418332777759032626335577644688007153754587476512074453040288124007039883289534983927762542717378480628247894620954786082082523688198384982803740488870997485180603646587785990040912755790692214307891524618270979101659075879486824648476876181669402608969823005587317075546471689076169238659786466881118490073415354697073946152852420847570480166043418327491957740583318619336108572494103230374809976030437613322944791980698964154496712259326100371060889835170106452753212061278620956312850279188174382376266634950592154417474098253458796345689939751881880837889070525698896950347452313985644049208019532474508306393020378376110018166934192021499809672756144196479775659528836254454400786951759723292925756180092847786937391283432520699886798345972376016219727970637247712746353844158672641240609680955325860660893371364452338001876736035979589345903930096294644211998628460042002088900160694518071228626438865967478056668001753649896267497542267891386726585858247090632417242443712952904662002249847492325120742636152685257235497454651308998732953150844439428918279979908849150996940361952947847041812110326863534678130635244549404731681179908253139149883423144220008523992225647132650016869433793469326154217421060476740225721293676127835871538990578817058422582279373566644047681087499533656810313501793203258092223434171081038888215632321157865897308139138618934741990224396408307248369222329523910209510726623910288691957539930207425599282634466456367743887727643495502587312788250916591272433888446150569356179074208114178491776429791418147357742874406924560774654542101367351241578347216044042279609385270735067221737066075439292939495495230677613928043587186986621514124377073867271643592169672099115538656135332448721373382031178141395972132302875330097017564577362941536890038045625510549354012337274208699153406934840608987771438196312442898323949405218005773977399716219755651981448473981087511710433064341006267579235694941782241562242418165980460836309509220334851562914226461089091019265640144459127914149540848483015665758932314614338194182741984841185040972774559264919301158741687411942591220966899673222014063698361641148778707767440890312331117828231453398389483306065444523687276112118225455920867799143028515875969327654904372797767226393178832129905745091049667085796212754802109252478986325031662400198815046308294087589374105675842243464315618227960041796744394497706949079411581688408898852209985495550668344915617181959373380015800500151868806879108588356549691922581155879667872871146453782974739920055935959297170029520536523919921255077476379548290924368650495545512453824461233774308732077478494663955552113596532529971739283849010968912394196234441961201575271704221850044778940357163306998837617728520386165667659016060568684828923282409199530493857619418222793724310857895343858402139265602668538373777256012780430792032564269479075698067694985045476697465327687274828567763402623663757986137698937388328125546178747941834428573090459573261475070191475807763588385309902683837678158421675541162311142056308869143170712139186037625063145556916313811404985298915251485174961925541067333975708626409443299295850753076390007283303092736360327522904149840440010288809607554581650626594807819848980747729836913896978908692323933531598525704151899613677991651323233404713179894650821853627626296776238864970736991958972513218916856676453353309598536316850023010477743105720891147528441127310150218719437000038780394002476399613186170973687758534594871524661416060484561549727173712699044680411261295115530314351077822609684134572930905441368155667626806406443932652518483568467573783056201901755966152683549299813651569631282920924204313886746644641417948135420152681879842112032856347449174479141981917601761082702451701052983035048621897400682638002457833903004204947556959722590741728129014055194550201674487069997986158726192044735651423485441986369755911558739604598336988352448339475883954539228434524164834562955654136311295397008240831565586808706711036210351282319916721762390794636833392422946979336729687835557131259293927001170448287346473930080201134367946412809831475490132906863229949291233882641317948340611234959479207570514279525341600510835723394393773674085833526638491188943159738031753979083192029076826616198413548290216768819661072468023846732811273278834476800618512103571428397274583796064168883757878277412683455609193962589013188146384652958851300906605826978263397912833030144431015980145259517822144852289384249977845033844399088929232638691405507146036841649995322536743756485050822217335451187989678947155489451929340737933026027727219028675483717052031292161593402489631896130356643219588306982958763739136585768882739205965728940482663488721322354211255374418189222064203215011010652228869827677472479609944374169200424190169220410707098243922110374974967393981533047025912536633642987270495872185369787122351061522579921109621311628751499002583260241283083957010627586083906085699894018914326775356131911807320938142831424877922273907222821277393440250354452190314653713124466352687200950955256551376123969866205142103115712757046167895819165425668281257960680402493550236321782240167221919118053063795609045629312027589633728954009078064203256834383081209745632848247510224087545288997478520656781446893402473971097054124421112766259645742369626950280682540886075740055736702779116975216983782675326361519694759595837655426188197526705876204468199408651424542076202582870280548027106955313533796252678120903098652938569423863015496201632042658587154145367065676542990627149498454443487128209391897335485110872231347415255718056286086730318722583182005401322731525318222046948518585639488127155093928918002129168110648185429735783733084437505309973461646722624510613664712923157213169282246296774887071311101090804118843003533010972742040076457345551915043123538799002803634216484485974236061747487254372834707503377580461195253817366431408830781018190286239197963021033137274470758377685567922231277672342257257040802701632799769047378822960132204425547712097174291596128586252115605949281149828290047713629434546444897952297169439956756082407728074901494843994472999311829972357852383812541015171321102503049283660241039561257539077388245409804593509691331823823195249117886642657086612231579614310901290382396348642996749303766383946964608686841076805095137260927358379971497999106724537312173234494260123544267847852817455859463435760257648007617717259261533680538794437454115716904700828400682323022181161885290948306493558565285079061740764017938107277220847304556386411396478738272614549843714515510183462229862306962123034935809365096270800667282049106338352833799025115546948380994321473423851243813284127020309997562911161220218169837753140306961368050753601623212713945639288230943873783310593456030031283883492298020372094461251622035248871510260737790632257301529275811339705334366836290138885439638888496900629289217925699289358702392160356841901206383446136417634156433764886387296779762790527980158552206783639350317118459196358596379353974296443401510660458921359481297665857672982877539425222672576703055581878604968852651977520199789942950513870249067043736872607951879363938757552263179809565220088718239728723366164900313455047595396167500358817835836051025501732462329649857361483039829574697547129770426815423296924411925228483169161587046530674658882216563932731420811537347133976586641978634632449574080256353279284703060067167021037562292595954058919654617429450357652009924929665675281278435810599018630945307477791813112506106214685805647828323363450307365806384723128966616063067045890344043130584729859245283681819939222328321140152618404786913929094586945470640092521283368112381918972047304597200017713584668612008463695291080440584708296345078994255387190382552036331814708212277257557827083275658698889221538491875973628963928928212470657475170086946694823946888418668987093383180433815078433440318355525419844351456560468153087301565521609555939715399835078304474577379016620955796097456106292122031173623271018981030918309264712992113001476336815848930048091407226639971021087193415681602834937457151673258985874747905517496242929960423579546676502653957983731482895003991855784843492889269277141775846461170047945432007854031263413497025950722886434898894053862169721651031337702867493034028018707645904634282041082516460716616222284731775578506998371506776876629210919059146281742056833928301278475384095772812133780423312989008431641257385295137229101942803081068913053283841055250861493981502423468149583211797083184213573715073651531382950510490670987670174139081956559454072436927173442435666160291368957622371633151005267035688673889765016795481888681029445889756761454486116814430207167529927448033520518054080794740637522684121968743894504756910668219117149886947629432033422841990032394676038666066924518877377414588760656129151535413767330065096072246258168598823714249825751157690882374822672808573435188207225844934115163645220302972123256161593309909128888467668730851079336330503948102879154879225857762666836855109571765700475019880305840981100998754666753331177203724462838931336377484983356880569487298344962345153084532995742838475677625070748228689599214831674761377912534829598111617256540570493643285276957572807911060476286012595347209820873237863900529828842094302385206793989945801381132018672417505130200644575112390360134630357868048859341450518425799570048920059681532473677830049167045971807473800996106242099331177284392183323169571075661774899095046430007184806276440884902157286246341023821057563571716103358363184733443991266070023083805489736111095931230483836952889378998154134239924392605623029790157599809836643239962153597742843650252891819283083165517289270277143009990095941482540653093328214052483801220367142390253115899320491107095388829820160729340369367790952544442067666305790120113978438352627556203925137900318969754711813979195371188022416253386059194317310478716821079285964775224257034346973223116016172712409548114287843206444654275912448513383836455813352203906271060454118353464348519799010125096851542601062945144987211507249826373999880652466390654200281369704249751000380490003814590372783465753051501448727937927204962593544992449393107009319512865186493151431012641353196364087563083655913162484605246891272952335354528386550479056301465214234149828791242846982758274376354690155749086119317052655395387531962358488407256853939898634381633435666065786486003155343198569921847166399743314826512462874612311028249732885551143424759838870497074308769882689989185811100333340870865707971815045630098432152424373594599301369824955960752618459081350118821487277962695196909541459282740227433152187539105044136477779339599346785345918598421314995225286199839680481793591936404681261826272734667938728417340743084805245743131734888468676540101976012552670765445563848822619897374831141448858275534656880823226593309706692119596898820661023877549765244130909886391728505187622221652414113815223536176203295093148515817509765315772633611458954456843135422123851040120295733271772453206144476243063423292152711825539610039507385241070391588572506462159399958036193635145389597280175489868237957632035612180891044528201864239818063203772367349767149220319143876824910489123458411042123852520706341873099572338303661985200580068145130406833435502526672144495856432480388669008389794282168174177867146360675861710814682806879091471221887033317550508474066800639059319882252619041241318890327447604627213636531787929367123844024776390886393296816039993479560159868542781237540813873222509943566736933365658132893127109221630243088070618431429662594997298931385082196322998260238936701240205462945171823397083264955460717078362824097834870622346397768954905034035600894723216794212228073669707642506745137014932246237851773984052203575234396679314415663566541445590253376214678053029699320099331692640291608570761684792178242640171134107277946435159751370418434619330757745899844798659621950393015413673144044248929081493052380710917557732081216516671997217520413486408476659593617222900906686120099654851051432923205544894541065167469475994798515136434521558493143526278310659648605052082905346851516806516359379764913139231049931154868378445975478305742590667878635539215976791341747320840202515224394599536613851247477922740364801954885268160761358499980353287433880637112546251155011488024171030586599348771423480740873866335548819997055477855853829055069458498412338730403321945622055717460406557488629714113225169284580560919214772207167946269352050199834171320851428716187825959729991065084937466332211119988809750498085392607859691241597462411435018842296054046767616990094796542764428912990356021300341270992417331494653942826310567178660089467217815566923226737607645632993757584860178420790562975515807791732053128125042295633092770673798342558207396225739412585585796576111503320235726181699753217102471401841628313811590519545243814754118686587701448176772813332206434232793913030671461564886379402931677945201332175072006922198653691495415336000183284305057453933492294222500711744112231813256239955192797879058372878132259711568407205992896883356688574938865563650759113559156020344683210514389329306134056983559263790701745566240987874954423754650278418747543477768296988597768439757329629721483529475732321752725878924716702302378932867695026214029590556341320896121807772912990714369050978926740176671496648483588455435748797999488926692390404464594560178267060834557632558161465246709202233021058315748889435552297874335420456310628358145383177998338839414942678409218701565703320555453865911781941787322446895310003545942310671636013834868348746409611334975766776012148241720752939802014315211363605552788661941695510067172824869678433618071427726213035201180001455016058750022151815987544864908032217938234855777787671543562351831021710967696825464712116392296685341067714348210517426875511092593418974649723516536735082321582380830421529949303525822655505219911244250974036483968949215695202731232315750891342141461109313906001365916901750871709677218020764775188002924949031793578363655447339381663253098325283260323783244585164552641854182078439535562699859862569888368837608500459722851401260817856223848410073564376405594952314195917390809556588814751279338460886336935034535482178045069023061990706207309643770466644983894638288617538944643398705703689610237157997100961329320344824809246792689824336520559199158364133183191050558941243737573378660722970749515059513270890958422257369409841710705236469530423209258178817730715419031930974284928188734372770576525846290132946464318597332423551067487315582986333037811855595720917939984321835505041562350933974702341824881520053664314760557643561921737466164137213925681031546498444862853780127061172527222760710590359835061271552451576180832503029346711007402334568424218686631815582833880238448990212209920081560517667287722641859907919591689512198390783755765006902461031567090899341277599799187768002028643884291947189823159267412597293671928794293881903434590321888844175929370418740822010348161415857152699379879374323001608651308949019623432064006961543501827141615693279938111443579013527524836825276762350448547106963233710180045604144274864130278546396553871093066021010763407021258289796201294773376196540996779550518380653185422541012935716849726975307736157108134413560726921862820997535279892737237836759927532667635089263269705227569494003236838680411420068749752061982906780433586143840787771445710988537884277502519194839233727311306029324794221522567366989420803854670690516393595278915832662013555204740161955767300823641547794973086492263070109294194972676228447019166258143293968335047498073340820270540201101845693159746803751902079075967138884164775101222226983286879401783302891078104371601196268508616896651886586313260220443754931515655604162813071468548202317373867834069715981663886279051196454618837308381555046627163020672620960761795130869372889622563275768541168355248771878298086231000150680024755915740543828343708429522167275447806926927374654648205767669231660629455625735142182669357851749857008563157568745350367998990853817675425572007747077071634831573515602821764304970129931846572187088198486886562076763566213686758765526757443785391926058183976846185796676641502737539078518687487409255170503252641910932522310446911373873903830367142752032602092652808309469332045644218153937980090714387084635997639575691020946572696760698667328883217868496673661288220564367039810941860959768059245613628855344077755484988903192290305015424855473097851629511113927483803827953058702910498423806943392264448386970043248636312933705005225091183206161602078930997392090761052096552314151129462519426023804449075658763710810008741603385816398305762756469828127952078482358773511099581475511069172585227221551173623580364004635706537067375655492398876657639670909319659880562510491098421820343806884090112468652805999027380014052195557802583484640398923486149543095977608918587798945975941920291126064735729995777328982087742879688791281751130796980184183128851763549654697697936048267864890432261970239377068547788701808899808932312746366880738511476811706871156477938247038699288495510576466675237299814895485228223918990831380532722230002376030281511815806735497089713802494169446906783659944519574199821954940976165707764952991069354981789866307307199332649580425199768220240526727365479046931209365794905756049177066984265274843823083171799338149982314731204329637409983828189383590471566695213522477733329840423080739872512100334399590984019924108763688383770170875949191796880757208282516222884771777767260433429137342662559949622531729963884733317427264917387191833382818144264385083434014193511605692226881372156552898915789582846227336786085587135767653212986995724727336460662057039352462031780690848972525110232764812675222059537603633080828295369727919805357011876385580531234793151121796842576619706003909697043380023936493369007029921919920270412785594956878325538018637447571920017511434869296913380900390522372075306287796691222023661188009156874764094935572949658479822364839480117237547766830334650776773544899630278620478691380119519278843755015659374300309547927412760413566251400557694986260183680466028504658654798613986958853485088914338987392121033135482792078488070467355172577808446394741411701956067576634093694380543727582543614185073034138518368927301478779655863507583725702724087992064993190166261349367403400892190230886885512406579083691055835981517381194184968560739264207819512009452347474646719163773850540594110689182823260405961236966576545523237459545001860045844389792607382397902618277344474758223575957587557362520611170886910728298619897103340623728743058383692687862684407671082249248341401784629218770663730310143377259179950673677058868100499189338544300569617856008227222284296797115711677053278825329622078625074076030725581875458394030112683469716577656414257588035209288667537155391375230027711897120049489957865549271838541715794611555350183509565500705827696187929198200471386800398410628622527405279944364931636334112818153519975687841557560214806401340134804422474807591939912792579663065126096333101186244768658692172954705390551638987835813307585370925010762534318177079593862141797629561136863592039920140513368428218858916722938366143835846633247795053091492683962087804921213305075280737493826862841925459999944069921713035226273968556725244625331531190554476142888009052878963211613840675359398016748459297629451455238459654241950912138959041684638727434346269605686644884456905791342927472497555415357287409580224653721140897348671668892874222777172251159651494314399191402310055260163995651203541255355168902192927776218859990994193992691032117454488118215072906123580704191108318362753799617542036592682075944393041429158016046479580720188615369026225323468722631968398957416701055115460711115468598570096080445082033988693958542567453755126468486810007355910023527162976403300202696725739571862476637516811155717097323738267719376555669484672037343318126713832731736469630626546231365480251866263436997683144364474739359729226213710969910433907874615777220771051617950595499688722919045777349726140821171370044566392121415773684682133948536123098712553327344822481452904211312009981784748355557023241067987776306563051467524623455770383267529776582701465952719118573675910126560892339189430744701544244636047292021798332934006545822497833829056335690198146628427799595425966643085084307493227955427800057784280658329994566134293525587371711120542381213495447548071188674265152521577248673671291813513799691685504176522275978907781350688021424018592357223169074813054004545098064796200034591895775686568662174121267330584831060200688737335167250408125210490903720160135874995364832030550077590421121888384660114685819714310587875069542610465767578913998556634238338646438179490102367891721738767959630159010761880207936478086875234275541806648941074636896343779037016074595870395762219281263989871836476969568659053154644733837009772194296066959796844353233072875622476932701187729800731788456957146794760780189191296160120439572376403443427395171694437197423311260115664209643676516934027851051959825246988056964052784394879356449688252402431917476974506484309630995948568276318777704899599345402410645083818056121624784262636681708238026427048474760325218754602577709074570847114517439914658409563112970774003824788975729373757448391894191792720651792711894702278109985898537587147866278969312104891878136466080609747738583430773928407801177534096142472743855476610669676609473880343900485684663778604541992951931103508149633073583534174063369448275708928181331509416287212473358814225723571439115953289372927241716823888325386413043478978622090854558349959437773429211877881368005477320290724266964874533036423462645410518444610408220936654491912992738333203831326450344197973212229652416647567262683361716878144208325083455668485161926841187404477158105500076075712246526472824993696659848719300083152959242000829346437349269992355502305214838727866795215405625157826488127560017368276089999548689428219897253610285624502637486488972791270821161890824768517741122677650517046225971386959241921816865820122774180677444447996379691089993045281009197862571788320978119918572817318186702489042203321850759754323849790955581348145074607203849606186158864491221712381752162347855462138835538394269620305098480742411908619350629091248959802757835218177180097729152799789166108960205932190495783665272196160227932473300488119167434017956381699676875414161158964191308802084539623461191886614456751816100339836016016334711158440898287539735802047867499869526116397605711627767497872129248695459110688173298657614920520991564125170216540452810912400358746647213367173777784819736756507241152492193061373002159433208426280808023461090344655748607234334622129334037991524876230849217698869033245627162365292445409020140786314962676109373984887819333744445866080455141669924665007235979388145843698887543354632209897479943971847711611584447786068907427044661362558756616641145189782463814808477649872955983886338809149890282351709740527316592730619291336190619513263570884245960647428356677714815568613180474720877915752938321649228284060678758035781654841015264934038908384932001857530069645261420059339000574246090346218190754464457159828897076858227223368236230793297356780603941956316766102102576499406337795148876003621463989731248811569050192551242293682377126360896519444294846481173280405935101426211454811634760767558367969228121758463702839135767862040364921102417273283552771960156537488219800505254233214406907084418156837917545094656541024851029432357015132812073453690341563491113779073922011526563736691617934573076803521423056355873351502224182026555313525556292831569700098038675369234493135434495784150917244076689911974930398972992896383914403620287183046111568440691224803664305641217723316733745386304355696978303157882456154591627431428654144446932137982803468410414852524823624785694292216828777077161658146207544017316572496611548136096523227893321792293710428091304323899871277838725356889555615924328627025617296141595328646754670761318506194321033808615115427573880628640820881068532592679971641616441605003867012765657302641515408176227769013337908179559297799546894201507567339327731148780021384282823788387396368272514368141440402686855391170024875548005550082186646160021092936001526616406900006834429906075218364887088247556986750046182228698880261584982756872603226539144178083639042275458333420417254345388235325211755117789204328732297554643388459403301374857496976645477424572270776312815682952747167430731206817046819222621655521296121395400483826160983232603877220922544981194156195594943050841287466834721823717903227364549364750129392021202324784794814527605177627647252748614637321388466648066670802052411211036921850640384147791501998705354637026418191763647903727595430985905901165742503672077665788496227030555097750980781001750150701836296079323880260048690948882660676550765605030282965612786744079073101663454522257289828253654213914031678647904583336807088996157923747284001164858584955868148829714381830566189787902701564215635427613703656587432137038808925133787066611699028340368887871716645329843244256540490972467789655859575344379999852158793540591086521086304064474249607340791329794383144905227162350731739887902714109420127207516509862518193256603129916134922838500937509655394198732502490943977698638040753422739928349256662563526416909953920860139708768592486537719061812538586739130176232649788360570446203041173801185852235800055447589752307041888188402534347291996699448324074838824929217911634747506374512611631661191680481010338021474067570472691075374376360741402465559980906124540397380373543705480408524064748659385939316550271474676630653349441990111112800092578652491179959425551843338369890282422556841193686660559530543122768866960874372497825898697844913161630339956315651046199256137135205998415403427133830855922878380380945271454240782901731497779390881315973007132199112665215053491232429987516020921332194475030715370921240673196218716169085037439754662244826304911023892490564447185592111107307651069140501492615399009720002855131798772665572353393450221100709399599221836616041227594522742208501529127019212413992984820625535756854062406208613337320215769716861329595065310468808608260328613344283371999141304863806501666913277995631154408738132513196261200933361370148295286242815769106566434267808254635360173336553995943471703323523563482630519719011100224820022902266257326561367034794759223076967421754715645931357136619335059578789544222493509447244137435685805203164588034499288167967332512898888487122031313528229862287987798552503756308288528270181198458382031413735324114098403413093359908353541760940465027723006582354547627773667431309536538421268887813758419216634788165119482435250494760562335588774261449744770517595480105732146902545656202295515004416000667634256795068010483484076504216800435647677571810239138913673549263149526104404868828935984561824202674852201667719822042092026530485219657641824123272055700895636069961741280372674927490623287598796066136913820536660781184273639453033173301544286904869021069473031985685023611386321928246505718968032147103188981533648904372089169259424726680064531265514247095438697371952629897323240934917008739488567740452266702179913768285744920594414558635674636170293296098134045431598374661139343885269737235724589992587387267443332370868262405429311067292351174692962278055284840989392800380493617200047569212405120415375924697992793609834319387517209341427157113539139506621742370965251729965826577822265665860205462134480593766923701453712113469156679090195848836969565349704206815750654149227231358558133332176337515844407168541623488077873931505818885061379015460040052228162200010666767582689724395921342034460787431414639055393136529683644668179437121768435308087961489233376377938714781445045419315810056124585872854026690096175463986475904444320462399441490725004411356830273527561489578985629878588433711627507094062773508433099764148357434597183468032766941981804547707101832769669430842496975278996346380180330637066811223610788044734394177588118229096566072806119851763558080577730472881628991424049929154407999937023698218360168339318015649704949923722802750679212852639743867928988802988895940081421605408192357857374886549885760994199159998156932502318974731297856107184275918638670443216441909634010605855097353797868837337389066019246202650731336973028281273305499486234696551011110533873256366154467270138831120713366840456476655615823797592895030175812840271937972416747820746175880790723602731958794273277704731236459469370339971382245482124840616541146131559090234100981814515867472151695612034949248864097324015195216912971990247301969468657028925648010179898780224960036691755133372019612150228027502720244100595332864962704296388162010193880184354951176712450095590953719232263900290564055306133769394012133801644773530433281043869423627867988104900459176324248956052458594746406086105595188892549262312774213995095118871425207622849733607110924288515748876343645989486252917829912183331545718955371869433882308995893506253706596803285959480480116120947200708010686956239293515146738074329529874133100859340548286441820218009919762901403678445731967308766651910806931266461510362386903773287261252075677513170231989227200312332556453439954639489208703385563175732860636105367124965526918465484887035720018848752364243316733162137041456406959968090081038730424850409726759673349049660590050903624636493791889678654661944641354519463058713599351584053787455913341241211241919079128055398520082696798802902586923348728523892388762232472289741374818182098591427898294056026929246444781428302665248762952481204584264580304061959092217512449450114652015383765053406348911398417697823574759808589621575651771713957766988519352372877357262220866494770533406493960403175025832847856787273118050645346756779880286419281923635897774969730975498648977021869638036879067947630517549899905119286025667807328701638504801849858358925053754360676574664734241329202014767952170127655194823367780589461003336308170699192793202398693231079299086485362726804655086900746101938945425378907950723719499579122069494059486387960927617197518251996831948956191446198084654579797109264307228184053663098985729956129552066098385822340376940316214803880605959245336817979793231802873782908532816307936371094653382864937941481817931145691732966297706005680380918021643012233297684119216677285226096603472042946777978345043637085093675381455033071163907535799107192595924193698406197277000455976274003108169714976275591613465801225070054234525109419753124826072106244503527019973244870470568857215073899752740190203829777338407421780081174338383105977040979080222124092093641999744609997562265749568987186990137347303548427500892256499779501523828813193609187993775140226814288813222581612386530730473530339373450977177572365547586508797748400005248363303193972595777632728738576826483412010117015531288178095349173505932867109896212070251914825856660490101218167794627355187862305869241288177356392350135993031876420439754469685393402989431732093211426144910563844930369495095552366617615764042728890225124735376049492635721850181423940800524560483195289051925277598394011441588643491770353775183761411180325420785797854021234005281643880767922144960585065092418748995455692566464850809065196992593379252962854468999562572327405756594574671150636304306301166508488383397516117583153856696687241475759415771381179758525721617167773918790202077027020825076278084936251228169707672096716808756264095046399441736299674043204705903331189535933669304151150157328481552084478296793195251466966613407215602303146705535816178512144867484202229921771613929133511139203883350123709083823474190780460204093784681871352660991343126403383830774255926114910359093426992055528756989387477556333319876765045457375918423569098165277687016048561234793488401219711878919242091186976329494376657504722538599904909158440202409058831489888809123791191914970897012754656883673773072306782326319119624797347555291951678198049120744210738123439204330633072386272575416805792317376604564379581609650336210104742939132122173772814463757794221162329532518110390714733705635932781806093147427353786305225778433025236421588223410134045609922145032889457516139763497621817963649707243420138286589325357103184290051105221026448218285615506654182049623006956729435448654875750449161130045708778461006296364210039794445467675615351372272121600667162093874956467362464237668673034120092540325535657888779099893418219119343815424519732132856473287319174153059344090115110355828706751762810519520548425767129022978187734495799689893265856974647612893406496056296772455652017111503390379980464056762911406835060936401438107680873475075582580887278385360709975179691484061896185406089664996739888421187552842801205490497809415140336018315704581027549073116456481221101589946486757615055430066103962166905481748255454701104518780082170967077715823731607706341898269016200551347084135521621436991687925871380367233736102801759368183974276573113851679850535590576164109288839381031149287300807996549917146873822359533350176260881422028486811989999905433531136988759496985741937694809268296947334601290907110822872536535233629714077964869570840811583053963937277525784503199560319904472942315919923189662073322297680561806013853104023548558760451858530461996693911984775648543402916024081573080818864627589460613214785768526746190219430524500613727472742180764815122646869833106241627206439091131782659099161847728638507618375790045389502800511182929339665276493404267793294997502270897994890101766777530087110298431899190793690527010677848616889427370016819846703404093378476404613310601616172236447460886383282672339560473629547785774425386165195663173653541296810392884672380655463937324374966158850772745958311156034544890515318447858430089650688512177008622648821763885021464420126195483038316680389588994959174482993494065341933388822662215655467048884274843055691330511813032603773615898465470689636880665372962819894797794099950355466784780356656279096983204937686963933098708167472827446707254512504409292450056657690931012619610475100624388779374013653584518117570657799156007249096877668668157857363658004536881329685891696881907102350519141262495679449553252101743224929592521761240282565145226629702865647813345813553273188909259390349769180985479278860118056682644419561988811166807132169215546612721291576088927851052830401250398749922022582202651336812358356618360227807440044294481593237995845163025853940364104920620999830377452394429918984840114802639494683778145622436070017339475137802583184074850683447955407219641294426713687153932131641292079849478463797485863571742992356333825886558345419490032055690049361367568489621199559911116868687752578594953164660750566031967283092978141483257447810427373048542028311638303497780904560184024311438963386719015808097090488315684203785367658492047840535150638700056324398700612451242595637551297590884179105746542241480390416058210604838025287096436293234566708334683276221678853966069789060796218610758874348355598649986404703311466024927502009829053443470625021549666273112434667781643757790683913372863638157640827349192339606034191346367586849893021550719998041163835656142433785242923143018787119153154408694283036291858244235557740973883778398221896630322339974762097411819975124023602825603990224340041574049213148339866227122272959378274835424959451756136881295819849282533306957427676557346047789475397295270411350685568124857437237197407039047899514864899388198912208002685841449373664865912269840001027837346782645626937375533693138251758936902190236068121344860225388990399653874462550027104578756456401062134162553251502795953768511940218908720306082243957776445781207273543397279729647725869468399321188918717867479821092201269742458817578071621963202417297272317664060062375214868242283257721665585461243058645008205277985629112259909103631797892525114882124117295404973119054474717513016893759747551776847187838970271573124060180092151524919333983048176158273253933431684169825038779296306512805074744546157190659099375166708147002513516008705194803096269496231599152003756205483387918428948709439821788860547307834634478862517146506587735427296739637500569433028765492831452295194494128023815169678790823925782964412199971049241700743720474080476282985827079434361517805750262430528103883016902849378912249013256295436914143192498883018683352661421962962716448360185112957220736168913314256394507734080827994688899412546848429633569072774243885241934418960100585305845618963905432497717423667727366375975012582957205103424303937695590976922153590115215211957087745589964192527125282956967475972295936713332488957447171725392932779792335525097233226435362741442421632096875630886710071758135292230431381717348660989514575831786560703573463985923293968335483590138587848056586381859128822129855708009156963324017764204100301863492060110463215509687173688632045055978848618131215790475167257184591915537553077787146565915966047319393473875794607542651947523547056810850349508281798609077479559001460205459129087061112679698485752236895719789790627605362224818530848582434370139100279006005896552616318629691806247850603541700142466734192623385836088987510562293783554231514018132084972652443707934162837060755748917006323041181971428142049584110701687666114356121598205297853825688922340579775695196446561127778265016239788731999323931244701159487610112510759082647946940009176789897687012334256735040585327715051846652578010515842382213442501328963084503813582633348330080735427989639847232559158853455728161102675707958460847775358191532504965729326222110094353678483604226596128242658977626652989225095410425546888581572070616214062107205919868536307405482673214680623518154039874134564151414078485777458647509809663994678030960173935665407767154245672477382702760818307103090736534972021820140775664817017451096481923089196002842141164555156470785009572343081072529918731909337504121662322210492782972920729538820242466809157012052760748969427871229317017369858374277552076637216586947694834440065462461664535418546061859840945871806406380819048843289111058144680989815025923133751936283371404589759155548405578527641631245773484271960888109923203618234404345262762924266927370428596392686528805338694541972664056690860076565143793500319176594618056871323378614052760877455623882167925037030680923861968494365545671302651332500109665450949724245619297667638310600535637361406030556257793319011496501147417048615668964705254300018670621713127877544035654489807734066298855563438243269257327459830136868522173759658821638338670849744471033006189658211084264455519623794170284646537162306744480329741288037788231089423885184712087567999421930293999129747076279922032544374173610207904200493197691936653401330724277857916354604408677766447820788821529991957129784984422941555637179923838488876960225808977610951848888962321355678338495434350900917636469039434305707500060336546748647970024928461069694416677584180618488972624528595299532409337627194791032459613023645972010199902676632935800516060231640527764337148995751432533639772991949865935401927591541746818672733861712454050661453545340153040537435802715456762920551386315945492574275875843067409040139527550059581172646987920105453511688436798977622963642388914220339562052689403898742120375575937912715869807512717648653496470037568751343511019079586162537357525685516990367378682001562845486230308764380561675437499817434727039562487926585613663195908470734806296312536730746457369134099040389309769536894636129342669814024162045751337405404676887165912973067092007251962026116252453054249624759250286224246341430129028419968962201410337597856589584751506976072200973496733515562169817941992450916536604156145918968884242711936745385246897578292198881169149035808238831072485294755484035290701401600263697675085342620115037988945849528186711751082631204123946726201490407931376793767175739038870798914518188045971158806569524648571767975298981911758355390905077638972990306803087203290993624455870688487309944079699458739749931055170360968973323255366905745970926074070758229570647627632795809649084719822828060011568484289631400434972000269481155708645926349403772431765865830610248058360110672742063676141613378039512439300621969451660104522775634877152921992927545118192718851399330134828590483524389398715970095576420822072975776192779846934326122290971993432157433219419598597599875609062642660742752612217657205316274504169331724124804848658755568683668857357973128707556448906326191612718799692927579108155171172453646386735227122076060520746133352393006710207412068010669336938950063985445397134052698573672604204552748563400285151796856047989850714088312853442020618615940167960336283986395872357726653240470536370312087462569695775038236695030284104197549270178695931404293160915977836315095788139646958749457801455465272351817396346056767495997413876823690819053061404900080004464310383439433731598949235278662186520372314230337362436626619880381758353967432807287736885717038685678165461968422573841366535900265215462565975048528045967329180671298820430481311536823320534149323583514902775582722240694977611019782269185818880707365254961596146505978692384707406811217489432908123770415483073541853997374876115267581084022888334447316083498642579377613911220127626581792261132416571076810976563623453491416490516664154961017278502387926450493278797325675357722909395575307825217724810113750424751365823603807542744713333606316246575851544354061896365545343581339353845723405767835291477761066289794583667737579314899941067571530803876862937790617508820433050691627997618048433546801888742264567964296339721273525736123207031387513915643133732511592730688660440318498529124463781017760604513401242308041559858217927431418718014852740054690979752580786799665011742613109161402910206854620503097568561133945374239959379876921860974314605842377783722965233460018460022870117589353214183932164597358091922585876055765186220269264802160250205869444582390538118818601555326463696648730295453030808383007862953111880436706339511606698149783340399781197653185613552454439020315822087818492270910241576392338455170043279611199608122513224358880043957370646591864165400425263337588444959580511921760436024687769066676549981047635121374052837825995314927166560350890190418744908457165965791714926872396631433580476412891597317285248405182305050894397508675824243012199125554772584101558453893425774424967014438486855187289236960753618771553174969463103587942218752073418009269064282289550282061252747047114360285189267258614880317972809217790887744084897841833884727978660363517386900856584279633544314799329747842351243575533160868449493147723648925414228120582174462350069216371909301528477271107946135462065162462157263722831969761895938722428303781419444349832787691566271344825459834344470443663069033011848054884543405319561408557465843919064459945066414692114128467224446309030266327282518559270455553713724720361240500279332558862958850390544570979696593271798022339540383303576466442282766597040750863376952332041357929091544908746164405252274124019888540153347955414508474066746125882324067885165155192706860347680221356458986128346100922025574297962074506842305924789262197456741308427195984308941684298974983399402472429978922896332315979672342129321154951043058648744701038885975435891407518507869191004500066752981316828025840261676131724312047841193295730971240422895369256776449270889580331218415538576409567359686371736111783195048858098990469548279198210439901243975399665591249490278941321985038846296410217047176593001127642799508727836064838435405149349948964796903569882169398038737212840671730757860539900108373687417298443133688162288770975751187522049068567160740785246802219875175603441200820880014061918009540392050461235441986952117546028019574058998282265577072233197798433838706731939167953190251252562955696818892357248828142276784722173428569275367358246483089594792937431920186586541037414109604799952088850030573255089951448333522676911501267518394900323895869746489357039080810548161939261682878353955579350781726089702803946804585699631743398368255712992635957983694771522137950241785387773363292432234886752758432077751387117048487758102422260349444500865149022729482107837472850693857301726614502186362504966447578103835913025311144837402835558321036694923659852222290493865993338786230235272318463983169589663591015781068198598413278634466598782422740574086495009772077225941585132246008808712095154477562459421601118404045893364182258718103157276619710413932169526247475857758169478932481012387200197527423602369939964147612410224519833657709007005466879048875194550397466086731450475192937072826545561120356308253438802877993560938266883762546944558635531338385505850928321889415179623929952409769547525880272414050132352581386184420848106680043682131408268773277693719205048573555366372224231400790048760284323084213905624660152490009520825347585710717963318359954951518074118687290528697178979257030329587831951487430155323894357289901655144564453237150223198282293529760862237595096437571258661099968106687052598545343319490234603171709017245569286304180358054338399369918535172004729741846884691038717824257914742689017611982709074524570524022590029977630025406652182008735279803931374113070633893760872190751915294544924602168456035029123018210465805518369016545927665451456332726037469487225325253322520050572430056581095315120072559323364764754492276548531190632002162879636999058836551894361581906955165546741016772151526759436132879839832087532909641093719814347548983265328967589601203689357069529336613654337581854422894183223797537252152155617658579170634341263895601171791525397352477650017225529628616442160494439475327040331758050847151444323600545313793989712466975149131553954962671967788656648216035251401336443884106924249120752248308528947876008296621485365787498445574069260459176928737575026282680191448003286870799573828438108852990004020576935985400215178093250443938227740371939626677601513572006994119374155026820214601475704046684845758933913159095695573000367348188570727189236897147264221242634844470117067658370224468506710764990982697587537486081298504672576600523502613882252271918335939289886810966037144371265677444013765400629367339348189524657072893392197163577301188992912845682588159777387263985518870509270596416818928368300125527293335493941104674029028908755983011871086134782963964925025836156513249487677760131369942935985043688085819430208842406193699485340308872491135806921903232030683763757510293702549515665148664331779285895684780382531171319862535282959154991911996120819764642316497152699269499752947853077823865149268101266437946170216701566670292409624497398969988103317911619133440798184243702334374146485001537995137674982577963865057888026562394719108378746223349222297662184417712274069034722392396470334321748223082532543049689118927356016307337204542745219164996970175963004975003456307972021710398765228532084837397913737824771115655917192213931914421729424687483810652357975004712945929917080662986091985221791243192691596257099563564643630038537286301540232546861657395396472490227662742777113843535287917769195095931598388742799370029197507473538288655314430570986404148270148812529039309878502454107061217035638134694438095733785988031077595118221645870930007940773324281774841463581196148949271553909994467637167735793706893088477461594055360974723356600312371870834120231855534061621076333054497262214317857403155893406145668476421948093435192263807316513311566128119649604840986527377869349714435027666350506475111005071331584540713256697420891295901034971415285188592180693896999155839705521896777798239544808491504570250351769124391885619215747423145098825161788958196179366095955088144837711595759962887478134210471245555360860811044822491842828173915188205760877158269576873754066010600648864721092782937583165026084863958798067316293315715450627734187414807897246445196388593585364528557813992627436260410781987571998423086443509321283680801249925196369259780373391410299604759649403455598172474207847941587394845535547021978944424826434960796513870100492831766808190156615823928801729955944466061992019743320831752913145047371435110633530962113163465094793144704100345798834394648941303798681195301267454736911732593178293744212302885570283063818934383966621866543946282442018065576731781142872444180178525448259298615064638853156774019845033579015461795865742790206357044215692204824849117690904022605844423870362162381421807362054223809269360287794859206893802506701050252337712437535854223554344115324773617130068460970307104722606549639633782354690265808299145772630062625080059741064660595889760000796466952909171298014729069784119230186029377725568693624670199294236069362791263419080842881986749041137151073924569139325501422099799190477377208582646226840679394233147832671358849990091820803149932713813294090861706021218621998454117035106669452605722341477097103201264104072809477968024054865346121465481542740850214892440654570276676717694866120371102711600395003314147993587945376058664193465672459972262665067398112958117947489050953761823388782985039177809749196923017312292299712103101307547068826091494978057837043785440371687864245764523222585495831323642376754255200654558780723193074222942015223064432706123203251301512110055954855344188804136708711135357301203263953621447033453427505454000399941834462666973804167153127226658256520450499089394445313876782333345694537406611040651658359010820756951981175587780878137896053666676569704084402952525148413136215518096419458568837707871299687137777434844776167562383091992541473960481888146179253428793951466319479371334814723267003361008894990668926891268431268854872208795758558666511892515265732167499606540437085706813692888755498096746671164102787412413858355348239697448673196644605126284940755966482198511099827673247693783135722455431381279854479159836078226485038584353115211248474168406547874344151341078374687418429172246409151786372824029174300780344422900069631136665814383214761488782240462850196384033397263829693428727421907817363727561399783754003070957288592425822723691990562481385156194905368103352962965002198687696400199804851442158454257779431682193621011695855670318876134199915021062509411734983552001575037520114987784037722260848700104966629072186127145019334399009157125308015240361483774561178062909017767940065292471871955027580113156500845646390288679977091729152174448461185582700329563145588200084132255853743429964507678283027798559628357866567952808158959213048179953373348518093575646995055380861300407246409282976207895565332674327745788213206395385738677606740343044342624284523347267605689890591094796839617590420412636180176877343197737306957603284741836916528172464482619757712045685035687210286433408360125747031673958719595324253655024125108479741852023915224540158041681840002617624481534990533895815819125208743097768390784345837277173945388446418469008635415358136665737968566011049192582819812975707635146826491850412684582111314413062562900415180882737310405275430006681959347697665614699228896376737476436985184365306816561857334860197887254650377056524727019482369338504033827815172833043586572602445056978926627069559476050792460389610900837217637570390071310551411991980050726032875451482707403988674567590529372366212297471401305024005059808398490159841459483401044150451089317991576885510607039997137376524044050166555497562039017587376260408787056515810422328979464305610163362233757689722331335210880738931484671681409975024816630276353880860521156855910091387450361270717012756924881817953633385471467654176349337976238248519182927676153154618207478534663842711925762237780122263529091394778647860625075000318875743063290234785218827089564882164957764665597103164255059827858195323603674103399673618548300401257515766868721473609705946697784425296579225592509339098907635006734025850033146617589437486394084017863351672858276715686954828298832598384450939653071769585615116739518116596109129010514974836747570636653799473399548057885072132508610776876683763032010045585053717394240574328709566553236796786671312020008159534174362253250834420540849322921676115788412813872919451692606582262726004477171769278513766792184604417122008564804674503780845160195448959469381348794214161223670818549769314335105855124121001767255511763046659099578756218171423885274313166895193792668453687017322243835188594040364944581951252577008367431618991818872334268245373286240748096511461481238185187932655062576921736745958127692797563673680655001261872289737113608263974612049220052489397865745228916158270394731128471581209314723267822590419240303569133424348342386110933578476583660601891076674491638455896551405894426288846976340270643350049272265522638634208386370069414377146747625486203342246372870218542296203372504771448411234895008442315496598691668921647966793331192053224890790810060933057019294481944355182918696076214047597090576352247996814270126853684970273881460635796651926642739114919020412526195425299777678849424544989139068017006136725534834297014528883321677268036245479112916619778560763056391909549277273914149835163706831372106770277638867502825079385029780312474350355526365256727197535401169983507103041888706023152008551424429144842500632172057416820872675581559412191116340982430908156159250594835102060240045708828759715238935241455615520189844261838084934673716680926865116905320941772841799712826950629920404469401909562795289893343619948599019591960643809926800138251654659695455079186909943307278848739127281238656156029293125117572596977867093111141798881870530419309160619412934737419132414433371827013409299497729368557852524887888596255075092107005627697281111855807933190824091002591179356726523839067632101883534370661201306231312877963655697058073506468983395697612217992900879944878280514223285636682353490352457185629072978225566293572962542048397886268319852947893831453230456617408530457799525069019079015568653433391632947095780890407676196694296420772190702107625513617704630567235797840786940021035263368105155069626908939770282988047268816870437172826052961984694625752789666720061252994972650196550820757060519908620503491665609568052031927542698653175934214293847899538154305194106574161505338677712983380820101335008635982287798100286269215299765007337008760990898695637180076111096621303429562176470069563432359273338720948588613637452225133340311754785594323463374598751867865385515970993286233330631284665943583189742366377437826721050849679674266097786927790062384911087260371280355026853185022247562824906357739644477827436141709004990032984043712862053369529281622772857452564864379586569303060424628407709756951915407346435614404873431983238904261731178314088467291229500389208593242786493081718969984592799253672140644190150382957453590891802309788832725808502190040041562516347482957127237306859289218131995217419920871978897100714609828121170244142293858836519807634157539811728033711018702319694938867859008479192593444373959616163130146207695066556191759133185370046560163206292878548570739422174525536045525926607034768707205633177654027187953676231632249468850821034294243026954094299492708893393920417960567310500364783245087401314105722758252256562861221208233418782550091933155090467749263675006494969962390020402139118713944371646997650276967240366423282925846561532977903789380901955166837774190203603513450465562021850538964281538962937409513610969689492114325246787598872623889996424170138652013450143412736904154174276054642772858001886089298690036677283681626312310749446968663380720850277221847407923866523985512882097516942468997576293298138377987945641037318271275132448639774918377306016650226920563851972278632533745776199923684574308349742886820499056215615562800028049617921637641105789334911733856792287603831321189653113640128183159272255540734742963422024201207169765490457329391481340923226704284038453035062207054073001184505904067124611194616823612093215268098554526703306731020455009152354786101179987287658206682862356254238763311872394623568365886567870540405530645729625287514236379727715238917206874406958580987444075187182337876089526404252621280950688438768252994485250789880020729355302564694842360444764930391766734769374702547463117779019988859902379769071512143003065144283177107920709505679691921351096860580665538236532849063563756080909264941657342819678986796949996385751005009570414284807177475878164137318773243207834588904577365031250762340144404127800725039108195955563019778496710144226827080740420261751364615860009792896087540319402106847046710731295645340696662621264961998891863234618506743292948644213029386086673243667242001055108515082072195174064957596470120970727049983771858495087015275940453297045030720995882552978179838572069771402634958368453586030623611850562614102593412123372757972130494349958055949216375356209210919107182196087790493457004662076350523358049188085801328432385325527089669910172813862865404035516234030876199295560857215273325729872071071322240400786568191999040099038311179419420494733203171835133978976972460981177625950845373081455602761400353272094098513634898618161549803925453875827487920920778216153853012493606791923049659676058409721930111724338966875274689849511486632233478479412361587305460096938954271796146788071874280142074648243166427699259460585058499895944577515305342292403445939523250863871272569153071828283194622274319843283697667942133561546688699392265784696943264179152535112692204478946535883636297656038167903836234766179346701482261385580563322443893064459105420098066085421561744966300205996317025076457056726251521777845183518310153371686485125246674260220051696845711552091555107104429368819426488563633495224321262048455152594682799752911399635716210863622335843698984630558028527829798531218966583082340180160557594922533011601092470246830998381675936050876114479096563784117520990388961520910058314913984088934089565693720512392710606464469703311341010832437614648109807878049555359765799636552319875753096279077175880760190743610408337943760449077987773708678365302672384353906340069573279379263064269892259151171890943796190997778798347799616271441677007983484111842804741730044953935356661912772079678662673320464723454885074479924189352794587213932622011119661831448279954858286191948839833746247343279539113086450125142584388047692440145454712290027601617750030199813329843905047891637072400403090902748146583253612168873554989235560686154631192791804793918440822458773334684144225157729903548644740448422524674554649783293770504324822859302134720242453664244633912253799249593566583192153207517824762106097161345387133460592056691676289927618960737220650293649857874222493236510406848765977059819424770585671673345367183358144511863180737310359182615217136936194298368657916392833251779117131979661670758450603043168078487309070602282005911346237831142041828399657390918944629213220672846664832994428750275579880454524005713289872948443416561759663945306354059156141376700891764844871474580731051052094485358649287658211667195253795689495697816626240955101187907742549568158510225605953712550872430861174606504769960361749096813183947523536012869067863178967442368262662001218353256213709004012420014090495268407585192194060677676957940929243213945124772782546123483445047802156518426657671470263998285246848367833409099820082131294169602722538588154449962773227139462489961878377332068896820549590860527286900241981291469063693205741848464124454850296363527722072600285738062145819809415688934612780912697844031777447533404171716211099888821081502182380704149408118389557430368521548708021680080913625731036946342436896991012152619321948206650664863494398572470656044636889530903082671770775790721188562462634169277100361249459458560570551713094041475798822499153461544309958195741839416712681224738622853602244039188303098926664035792185846560211382049080245752508978312321200911490434967873146469087922089922331933367418662054304696385450689214935667689643505730036206370100687248393077336795489095681510041490170241975440282465359342739407773983272560848112331452668192882929773273274670616716676696424073304224694183482831414151125599233906242282033724819744293768236883507358711985338347747118148141661621688173278910010343690298382104150651685895574531350862510722130786873051255612932850025511515355089626573440815402303727027799728206844709815317459088021269994610520116772225114127279806260173413627390896200955995393900601518880596995193932235053705716781159673624177047127495351469151556780773450933440183720679602977929527435715351898663393677915160086037291002043824682801626782669360269284228676281396904983287817936277884223414361564008225731701214103563117079651314518331424585848825864005554070718782921949713397559236360971893883352195417193352865844380254164046440179177234315551232819333730825923889585937826448554394847256940957757739694105015440785625951008731661599727814411886967127486397417786155169761306187570609387143403320451064648359780131342066117669791260035717207043251234164788237225857219850667092964974474828648334471889741221011150973237881228005621135203334290613965734875457728366272466528722725690282918871435343445628804345204482570578990523154130732384325922476654913661032264961015076522925139873414981826739488153694585496644059992949451483478947341476775275326426166164621599738573504801587999757513886322387450597934555178802584634299223772879204073599499678824554153369462516668641740663138429789564802342838050359228629988764741833088430194052927021400934713484001577872516337768098623942279805882422911803502055415250533252129762668527962663477469073804332012779211553422434088896779920532737861327158111821613863689797113300916668978354516755089580003043435232557705017450785608686361614194310421652830199406070887943010141531956265822087996647920330378209480652258747350936756430121113746513218311830449975115176149883081719998959861765509997313943032344679255520842647920047453337503561559547095069997451664534116792744265521411261307974045640812059112959776860973309318898264992938159764042020923364197098368146198620570234648670583164583807324009800735655728126176281557136793706206531233980981848798636077031817932935777146444361025673750176233016444562237488103088962941877654100542922473451942890085620329481487371144329198855377710912011601725704121623304508103713558322995209837464494047753524837945951564158049833577618437661873020837482882941670911557182070612091799437073646634819472419187120500003415436102986240880286046768834324272917597612312997760520068598597175624984923295158450285856919209786705284849209849228158680781658391329348373502532593672563756682335419679718422761285698074301782561596988696653640301036518204245495382671211503901038969295305133452092184940991145338504776605931357865710805838079750915526884050353702812053544198565037198139266707237085570198219979893230286784956190820241457202192800065972727771409299689625048399647577953703338037306326091521792212689738436653697017137872148204724396925287364239927319466462296067494089280873920886816064430543971536584181247729842409406330258075770729193494056497066786834816771499936685500059800787589894858093440205384899867523374428251044663650194905135624728995216784124788521727529539258220834879555841487508808197800120613362862658869335070599096191273801613862642256332213310149630087486759898947159214728678801520356361323658197375373519929949677581742466079422842284454533255099671426466733849624925311295131539699619415236267524754523662303876090746176459290662056059063210244634963038242076990461702752220406975292357192573547374906084399625126116629674783609829947354289360800055452355020213371498267659516826543221435955795994779770471392544266854302592113987172867055158665578939378337734439749928575296591764312726451239881061048065813065619001634585972964152742202641826620114917481925796553300083608648620600448083309103157364513772380160790881573135554067756962586044487170751816857936675299507681707983866550592512141257755749662528143675941561763026802846009074695554010924000781575624703585062829659562667977606298879803196356313859592311511855896591361315717378241757249276687788172251025277842086035438680108151232248921393642652949959084789963916947533431370683334058248714222301889155615072952788187849022910955570266969517944427900645637812691309455812775816975793185380663766343603250736256561406510604639080023930276360051762674631920533830210529734441120234465206735892955105160797618198639152690635552701365932656166701030932800839750075456199311883447894435896894266475370489623149611696109513683958884611838548426009617465203339659862745598062282908691281891393838765042862117022487492883609042147358728785089483535639799441691745972046022311685767318233076927127836850455235192562357141575687533024302001675914710541453558809033233018640192462932350401638018180334187980863122064639304009036645042009211674539825944827489080794636372725336262674946328500596517265000371953948696853966113803348961454263910825960589782943739640313986877502429905156680044034585009452297181786586878113699342045648279294086702395267969951165039918276709069011768646174015528585642422401134163265901965993269632031426177086764593372185271116410380885283921996755997878413943960004372200845845344247520213095970321144787764321065469719160900111551392867474308779711640980746384455991281121921000556220783733657747186667369745236751731044186868419336846181741912668618810568519686202651091799298304143165541578113960236414510753055876716144672519957072056469067697511761528115907185332645827623522882644323325282820664320136987420393650672856185892397266408839567609542954844552332692742793723490347130271809308949607973790862141826199027084457447536672578464815566388154988465920549604876881092905366955538421671804106995652610166127227852282261943486900454796375334838974992698676343682658664867797810819554515331197117140975748020061713414030351977791096331436387225196650104729844914504778347051453552274144860812592541830832383176481929295114559783681742957756073122940127548058204282123431420319925701543955349808441212577912196490148650502254277599162179434657658284568390053617748337260911913061363615574659249114419083189643613144456041632542231447072064037434497983688371950665808889935773347763376347790651471673497600014573833657148265235277013314551609413762480328609793078977931775046765511930619501589353884497823967973731805359672604861315756194076129452733299272371172643436826369586825312190568988087189834060009531045506403521860228871263605259391947436107602080170074623493326806291404150059369816091440370192359105612022498490268124511687979816166785004576545229835951519650276875160792661818574969907334075639286018634019307321290646959932905416483057123006627072439563799221310279531731254082697847713604725473561290902740828251289450898549940173469603980148289394525947377260432921044531653661693771694199850100160358378916252732069952395027521752605248485214775266155359904289140720671123152247746720824744992924526517322755246804245673797140442978588440362652681763337898250800647851567754947514278143446176916429979594429666509585162667136586666643351084925159813484129824077061859164538029368039498114979706574064448408577012975815001918858892827832639790561799984116663896791779529253303005651210661795414050383360348401256471949137870480306053969625021549882541360746001661511785427422022500996685821997598080238488400524711240256042034220292051794551918306426553946378010341033518912078424610105663667291982277465717536721547242247167187709919890523034243734470721563462439526459789125928840404838987544908761209040758423640091745472064674171659537185009985095215266545312742955606377021931172596500006240671686510037109625078518642383910007889659673307567758234469783542504783062572684869723645962360499444011916835015972399342685610361913617017595019206766788283554559327033333537669413770719400189490320043495588458360994090440639166900200450797897305047405362443176985870397225280074989547178600583158225029142027240144851483308898779228338840046389728478186417530874686779520396583406257320536805503315161231503930021197192546787044004391061309931745449088220322574177275717358690459660820768764920846730078863786117852375566205452995272521923380923559802848136953301372118837451983785820354044448467832527277718666074351240999956134343614533998602801820267646623767006507778644522949597912290672758311561526384904958421986005173248383022953899889536933155896160747272088103423194774637015118502516452370416159546915851060464381855785578693668253324354547988623639344177399721471561044823145637481096969415638575920684242851333309850869726810140377543540078006688623682345695797799656701705340141895825419916389916174146971148387771364867443603529174936445862599229962048120558918361276780159250762374597374985192104576068654602897599293347198445154248397397997395916629058056774925200996591946995295439764325050432874401729565941610580837966681329598457537852275084013379646559276639880731798774120946057090509406442617870031574399424758022032796256276272578978192769172629889307543264769829692352404198348261836432242206147344780491662300409807482947007370115657856718237322156675081035071548691387518896374394203263327333575459931991026701506737394686913616440382753319901094387653217952687271714960290186513103219162818249850887071635397811333811339725983476023245118924853883151319068718322317525213354365299055572150488855147493286341888071501870415454446395390523593857325150923829406321267061054500558742966827483523467434469320494800351007444585895106378486048713328331734061445399508565784748310962009553162275543255571231760804782461000501226411496747003659309146404455931871227258075987315098894639280600282618050396791952469831156320611324630539080264463275084138017793163007866364489982365119881887936154008757442846949123309456875712878685979997843624988541251842890942672407972379836642455047102110582644390679065822599438247360348551269814113107574241728547844892355859788236829657663964674316403704256329119225328786485218164943297371738687777640668858245779268361414271598023921780459914101170199448022325899940113547984532919437595316551043980951068331503813086612618150052916950319034377999043328928544040551066852167571364168940853004285291595328969424445916729348468948074583108343205975753957902396574320479863610424621235970749045946517529718926212900176220078671290024902052261361066299746602002618937358995402754617269711833791868249638391313602204480478335181998708329010726347808320299543916400181423341780610792738718065242962657001851445869808444926552354497396212780156669382514143677371303920190370140547399843384032528525098242034199553320850523947561749172441765131075116887993967821539408981828578125719776435997091361309022902518972420315259244595114888780372707275096224400049929020212720362725048121071314554302665077729925791957636661131774659882193076786466191663449138613021256021087912859767711256621326145393972481937375364801601702063584856176983813572407102132442150366591059995901105899802042484683425505831821139499586171051161267706491039703054862205991996328802677828176306158627476222531483509048382765199900084590032707840582699985104003578163385376765452659554276922419787300788462607621855869556048876437497916245219147222065684183485110071799080788941971313421176251217611541452330213181788363213106006869758332333047811498847493360839471735803294300024933737261141848545166321114878113277053946866722271146733868960203042845996888915535936443313740446825758529432213535411981079566292347469276798672575178054148478022650920445396324320114041649335336858006600334981758180784724579984191049008119822756477805897240724905257988502107412906605611444946361880080190591153914169738499710799863207031035298864341928484174071647394720460647061400076864229116183396911121569096652594096676592252529966220822601397231088441985814257129174404499180320037526311013636509312343163081444637766103572299818492099290604588900100858694641832373873713421869532789382134100688198601814494681206951717523506635274335945611893007844033023162303607966755695659777582376347031044007276056501638773693082360981411616135208608236768006461301920985036704528310794473714230040157102855202504803319107941365411589427237922840042613366635698218372029231270061222928102888527172492517344658241944176313937274981909882127006229350426189371530770616190420506292077012916299511440329408694661744288477360792476462583072363010690301595278860726965288565038676107278185950927312767009562799006856176606917895531845989049993045174054379349451227240202687757814053020804686640613468843533362374074800190590823285347903759921326894922952851963545338073984116855878318268898385014415711526436151723473203208467185344287752874136596632531172253542509219034490495157299861320624647628917056951770762435272759693628496875444386282132675586817246850078082552513487660968153560101916916277932500892016122549347047934858602658501763853603829492220607519571036525748424761609564839536035452020225907974720740268181805547374291092227690677445638025164791434130064608660411615468472711072237815532784656451650743395227884174659234459971864932126654695424869580357758614932724330392486844496279212379088820718147311327906593192178259654176799262307488937769725341078542592883463492269320591879582248289513733308461160508666386858108817996546667856321317344406201854555205030075424150683323280974684168618861552206699511508882628018575946238951047345438379637433572284472440711235736302425990295110731030546997827300908443815413461420139190685229430896076104055288258222538441716825416070490239017504848364810948370236250324616318922063737891714537946736173877394103740434911970288544033379743618821430894518897347723656984060536073867842254752082816065743831710393573565488614302856081510440699164531764858479096079395724853447533290539664902187828092752704546399731572843569320124454101076955468614037619142491223098109226806682532396031613287469637183583412268820364244833440679905188642773734406254168465287836086660161968573620378169208523616124443901748409354958007004914542755744474505753797772528280218736185955515523819413723353356655905745604726432804522476821202851100166061864484982200608644298346717638983567685151627195396327810572398434156081470129629406996580803564359860368975032799341856999416996377120268409113212125115984097211825233066366296308935962237345067618535996701167414150069482716516209397625821470109371729929525298544561761531625694254511443795488652986576364199442052667280969562052489215385869585041914699876915379935694556339547906851334125915773864485916209607401143941745130332147739558584807526882605931379843657224168546256719684261187550909585597983009913379349781102467315891874292733321221579219060193702718538426315351103566040301526217544834540449362068905918234610383411578474418604303312003784848378983355883873129610424196462821883345291371751267876551524837141146841662178674003111536112147395247846584980787580794713310122963135396594376722391528323312563680995604068919398354147938219134813866028176183576737202343911095376369488373061849325067371356322201555814680972921898200861347484184509875397240592828028096616054371098152401102838363249407556643861534489024143132642808350700343372846199574880814943893098457072327355860444384419312702322837312612379806318957021866057810237397428512792706775573735259116493433347915958710293503725102429316529600394290980807487394078450017939606501251441989486369137867168635458479965367324745563040528932558006863127801471516091666192285627453778614212482703362922119723474312544434928114038671082170514640291740771882166779266007589127702328045446401809030060408085247262808017430346988953344363791072903702990441535845865946925333330713634036564286075561887859763230242006637192917984522464396103488554642259866884357399094746553476506084988118165021054254289184774207074017308392868085431210342190196590935092584735312380032456730904329994126112179438312911808096684905686272092374399768503036315034020692534344589316207707078652172787552557264560230965588882624702338467133688034196227288218498654084614611518221414399304740676617711025047228176021559931472808674139608123766036884644618631252806364467364430706410289207604471513238382857181061174457871751322624057237835380391195126510229400519754240997265700117012222561210000455800560093163928657119500183581592862574959627570254028064130234397564839085183526566787809788036821077656771060033835015177818855565322416418282551581074006645568406137189920855502714667704826431327353952006135194521505032455227579169317532886832929107773977820372523271570840527785261627034458228210268204301498716284013851552660019386101922499964592451561347173516314064226043721192177312950258049164761945326725463819409536133300868639728614783141281450847717520214426501337702926023171472749441937817752358358051075347193768040907642059214002709085332833782453222903362320403278746097837880262570277128296578470605889931064332333870764066490683374147845201578958559303640340308100246402713206400967811439161961701739397637827458140560917690521834924611362125576315457799102712028973037791027669148642971456643266257980016107836183409072721768304030770973698370656105036706366692603927483765818856306864698213196237013371147414595359192329291733502722991182427567808002928532620292546788189307418458126130215009290257265098443105288883306605954805399116476492684233466389300146965385213850373893951614795805559361724370049193051948105827201873996759167466714614746226738626514143027808195646982184354555148003132061027835786614242825024437770375949595539039061082907578294809003033507059776142764964127460093534895819452541355773021433936135267694177496654597163641126644027875506399719332417016162522198280645079030349017918020294432029954696586926045245414238668697914003060467578243936116482614712023833317217449043971717370627641559104798205427525186769991795681599406681461848311578432587323985810035655273008240741546789035744863837019797459250550599898077669327789243038602077273784592851205002267664617269353300799240046045926410192212990854815692528891840566091029641796873759947673672943821937846571901748636633101162349432273722838104150507656309977466196161328849111280172137925584258972837011875184441634665039502029738537622823046914274229315815406248181040414239612963008611434174334557167514599862226807754723615379153282577271735325003275883947274758964468757850122537859440635512222763142925850657445130783994060388569528543879884987937496907692538672025837022379817594515432661289807064921132551315253549389300509519432865186101885351476299468465807165777159710512058454175710261961149804272088427023500998307307404839025280376495602936009198713623003479664460674533424093813675812432484121015348217638116483407422381759113388943017510629700528050853189370441235166801830219263278438429472520738268207632579985130816079891053738382143978555381912873107720288469647375115507865855528754596666627421648843820011040407581565223985810354727073360415472476013013339943938293576807004741159111764774826325026007383871680024997977281615968856116350577388750434700172261370915622340933797938991955161272821120018774323463079718712815770229766959564347220471699553401534928190645377566600473671579475971170936245472277479094988198199334037088335569249888864098001481880904901136737517630895189821199760156454033306078193069678797849268801848976554989016621968495793029845902173627672982654325003375152514621140847479045994002285556129840530046299535149590756026838159638286648210621244437052683332727813926279132869189087984542384213158678703250968575838289137195620894917891492089956051628281910172388998121298560242580172883480514399406637051313676097268373364160267565142672362570113927487646194347983618049353051164804798843127783518910801814015353574631668301828348009441392005699051920007287954158633348934614519739955644684271312438112759638512482582900725538902347954339908614655342635649956861461407959591148073572661858411207494727260358697333470684974384954779644169364799186842418022268721089551328180805425182662770188721684297431847280225555222093203237891555325913363488011506614929609698831278002472324634803166736204492058394613862005968053911805955128680173361324364915639251335845408177258618160831343239715888220476839030482155031062249224750649171166633509327016126349503641725369551224752904240140687242483518602760453342753757598208499478871441681164110155468243380512467719417076021773460369521776488324647485542725298778690246549198167280717896446260909693252976497674455792205946436777657908503929436207911548957236605914304319354517662871180263306410310939632441968805399642121585076249678497048818713353728678396045512436795179027123779981045342944235152115259419350904678079762092127131889306395647771134794817334411671436121393388609191366623249691517410825342126190855952669514584004643941045521597734003943310070139144845280342913623313330046344621702283438197410277872024808170713481915025457368458779800384858253999210131477435022249551995461537298060692414366665624502538335744822223748710235555796539428171383946630672057635616755375023000402058251741358257564379579307321118683411296287244894871795675481227944783760922020558892921375282335037313819786929415041530729145889240296074632535006876944262534327619479518114131518089242516497517705688188031239017251219022230707516466470411514475601272067894361194452046774527823148921304367059372823950059089946150403433393256647743519072156395032184360093045755534462786582715439008152660872795620234675875696588198803572956595712586874837350541652621191586954315263350555935632671930942018717961254879389642821746203803461829841367505240987195711899874342814740010683218504789715076770178625418778868872271853183968303316410487072055973090274374604112762064735430704649423260125268742896936271078748878724548116691737453828913002829647438144807783583949576508676032669566839517049668124777576454380964345883984263614930551983792052161401205579296754628667652019095768303590810851242522553792024061062671829231953522014938908549780157825042463819039607345984526128657124455185333695197544668741373155271907112940465831734754958478077099212957122966511371987074168504021234460968834125322311671368969231514242698116707231784152030795528905331286236291756516945098419256645482770953774242836096363385283100419853832372998253800267540361208791366334921064257695277827922546287415242423098869968685134418468295729500456318006052570514261017993177309066372339486051710302271534584748248375772813850894823390199438138031475600774533804616269256479906082132546295186207375722819658625100939332524991411182444577982084028084247814408572332580921295524114264017520921313211242159464646840805886707575559447538679802895531827697697054239573535029838747038762475915347121118300373643320008336397687092426837000189682183474579458176718563598592792059238199030606949121850443216971900294395494587520697332582466167090625449611342306109043500781186856296638956555234016773837468537763393375886186155971582368060771951459985209164584813365620198900163261746260620330076814384420777715831672199351664899789667700409572573659228261509562618285612465573556714963787447843536471401497054191344623457464575702933915919833054493427375601534431415118363277392458963098246776392146139178763691188771786838968855909728028083221798395068196520279310672830919174102049621640940948089420505030290056275541241505127460802947197722315547314378876327625060901695459811320306854979317090914654758744127272331606160326156031487298733223484632402478810598890259332773911777562714853541096501853562690672445001469017848166885089152567374172145533255168154287139528498179025145222096108558283618901681873587002495251805489244663579129589991908131424761267562943492337238211899542657137895087628900281094296573136038695996276312984026254896149174208467662538919756845348422176869391006350173168625281961120877721511180937675004419935315098100112252142104543944179915751261068809977522121026064611703918706378745274718537935113159006784167270468181533885320342592772972632998696853620984346207988150208469110308274449121335686303122440360323879491293303932392826075044074370176057235664277256740939259472227721774307584548619266373165194387437955977911987771017747957996793450070657288747275062482339575384923515635523667971106340966370685087073398831199907008933724819140618192077129398720609146035442732553932634393488813486973660989825687375051364527950693371682551851586956264943773326980040884841699180948216575524327239077949425022550544956033462059910829395818078975857020277436728855270192234995084692135550972156380202175672523269438454533239897507700947078616956503703901497712826748200886350602366126986226416278222878654364501367317944058526803801073806486178090870569283935950627015018177209211842730048378812344535983238517485057363372715866022570199123636816216522573594467626167364127988823778708332957737851586387657870485442757443657318600206978099961000289221283092307363897249963412830113511253308597473057741611601361575485300197115112288621500170234599971536452648029993321248840267844020427446105034980642516843615373503918611930043079572874020461842019129529781409604862403745821267757646804463483548384282804727942338008701089395518361918856121982404134551319438896450919731282122015791938590333031522780386387390403204760486921783926695895674830424874253664603507540176334575861106201510138381679229441104053697563170971240632329896145479797833370083709894972381625780291836307334210274272742880819173688557073646108206620103448483304533834819549592528243100659922462429649248405971008772440246650859649248443226088714180355544912051447501092514613490704151808352791286031076546516650061192989449824430555284725844587725358790479521399771921405526417691272185587754313775121311661551568790195290216573553617325698310584342946475127253623139911035010952266439866560466140326489041471138174457729742877875328955504605337749722315103736568289516529298248880550184159835139182459630362756460254883125719902101766404463281847579646922197192825793628711866939673382738623776549579663892200646507583847951862387840094260609525179687132118887204559115635964043539174443359831404573071387581758232795162109495304249370492101479061743506719963431728414936870144979623757149285290028904587223159940710968937398142843699992992021246646005345110020256520496105345303992586300334618462713202535833265888319184027618847438273262904610557583807048439287194894965516603654994724923414786130175923139893285738065736821816171147190058262791533227410772456019510292502855455034403025473585112818765133768630192762327430678841502133650200976139031377534117479010526863333020341570317515885661438988581170555237038590737833022785521978129517244076290794420606916764454046360705640299493740033276571421347375042989413043608521950694223273660404188163377772177766443792257735179192047961172798794873038714015804464540916412062464122893093430729427997205790533497527268246038593637503336789429004259708682186718635894547800454640356812770421502094025056977292395070453259904157539663819822994223454573769176999025535295148931053873689598145826890705659086229221563551634605852414896630600360265692609701730406457898419459920262601210028799263686332848579771750902172158041427402887966906849482595831650715449188039954429495099363254405305719069355696719382613727514250684784243367939441601843002049163850822094073241819791602400594051370237980647236082959431801944900454268436669303387754238622902664662286555466146069291923847122287315349879230372958324750050935697964344518046388269900416817008094316392375526462670307465603721949615868199040454584355162624871512549916114397754177345490024900545586949676336887943797138317385741698229211465448033669445128035631341611890859682384498386401388865666925819900289754440167329847728926953784678655314839057745882970181254978043308146959301399098691770573079811645231142040068607723916922085412943273988226313223807003989892903416150155686697996759447692100094898362924828976095775457081455062348276838714839367983687943823891240240149325048142819509569821627951277775419915579254554077040388338612676939323422125225287806104217579373104525007711300854925683929122050552544811399515174745506035164292683185629071693931188549320554426492454814677015692168460211206614380604429952216070698405851719606349821999968075966423233947682660898127833890088767397721667825657074301487816611404562582432412144569571297095034168414096736579034150831218714750586363310181621631939159635549373178786843501411669541423741331972398862868299564122390328701497194158725011834599912038147689032367153447999236321463192152898722982489773365447713979333702048526067626545485987190340388721087888544669925793745930489069541699542628433924090251691118124823460055513680587633981503838361379414407457597964058351848534396815047984059796942900876369420565808658481886498730409935144452345982591446969395473125034095175196788114928336911774863660709100599767142609136216640993878447753250642880911155734878579909647382907671624232922167097843375926549890839402572332115791773629511922273020475667525216717909558840727105766489139187733353997744467719421201900417988939515715271836015799699728061437801783894037119712221817974265858712442711160920231655307608951976645069572795704275783451274725498443084907364798197770077746825277332625689122649099345226195954129890489782245535541395261173426134261355928358138384641500067963856092502108479866724937247170303524301491256949102810509719410065748435446756439821230600640752860032267195416241246918989513509405979000392058133243689446388528083248410225356285619320864114130376451253103427043268909425713150674459488521737214591969564147309009061584168900060331525406759666308554834200166410187837481479417425248009161341337974597191939497389687745208751190716071306838210488988487750421066825389586203545588309856054086090969846560973195266124498330872401861507640338814915232272959753519500998743187757153839806405586520396033982650011750168618433881363578302248539806268069361179364806679374623931840193775001512106262407610742593641855386146641943796947881780071862736366359626937178518580640337423249925216349664594752171886706688924132943623377302062392568032864445511836466258701505836688212565123405027522089465006995029759201311705994809984586451153288262325333107958230349523810335849077931786823812634204652265513642440643553842761702966949575303955016527623397299357901968781954693900776222085608764303748203807178167936716681108192557460031548316729744056084901812060449188261849576756732671569219673906995030490878278303840084603457595771529651348470163305569355986028696428408271543506636912740676999057704791966650200644089780977549705668736565221642956375313572429943494305497251437627078346104132833125874006071988819157939198163185870909673969460156223362866306577674939517386572337771082222199907713278509379818437874861177810203582642008711771136931526426495290343524114107219155621653800228480341968383308412344659333042287016430140738635516279020224570464508279426284238596060018217552648614752793589184619417958444920290362674396848823761429319784607917001985372678133327413806631782652633426706460256034249114792930465615385954795489208381018236930264729710036357271419168339821034985733099730305635784249760485809129588944448771637094144753488523561148463715949952540086108540829649199992700033670650034647545201771864935924397088082426039603458095824910164679617438894045573312898866905725010214978571625281926611317816875848852261951864713166128437323485428946405555442496745817105100529427372970097275042738017972619622317202143068660392701251761263079402392435360941681965544752321021097141625194565617795937029606637000815285872042394203314498516939009669057687483362103280358944090265829477364835312451032802116893970579968997749589532677581770601319907744656365955430194074106561931517183879951769708797807806195447195071691186553239419828019323300168742117081036046186209440457685375573579121350937806424327214291026625878641118364687160403279429282228591930080075974758680633857861503080272700774301909025913174804710999764087566422480812518440360746571080016319050190342973491326406405643077005125193675558427984654448179483213746543966149056234549431641461159070333275991178640529162767796014375716472016579858573527840880203826117762439381392679052819770615674069552745807447392226600244277945267166080614650961880834176134328064119909073950973921884415346018588320466715175505751427675926285787764873279466398538614437235602153488996537601081953069849204087838002625024496685205685059093297920563497814294130770189994799818677099581771325034895177476279331507552435688427699268649645974527421789796009261521764827408435067143997666564871150103613850967525286524048603928048099960557941432022099691335683660949850606112328619542752204002115338312946175811035452920433585258109050498335057646944769922723293005753832642283873727554284511703023834154832448634852378532329608731769662755221131999490853947599980061935930101121625362632217779556988199083692554753939386105399251631083124058993703020585344487111859761429086367093261565284210766867465254037826000229110155763584618978097695216727411906423027599501742821425798717553600030858023943344169980977206965512377347918383545974429307091363007721769317168909368763023391419350529342506941228056530362732554910667861966234159924480371237454728510426343701617357158120317359701136825165205088389398198674697960963122521282663030561689963352873732287603243142906976204487859785290509209501860626788486230527955398476822340806024192544557563440863975353361122126831995012752718006968517933983955765180109673880475146849425740392402500623104425284219685339269267636874142594042140866659445854786029204851635041157257295579721751684076513769331125292092993636590687276231749459606753858488725904515750705003512735905588133737962857506578425629046932912740433942489620355133196694876196943157362584865369182665652933758952861258323096492981565315080281218634375129025535328705271070463072497736310630536208818108656080008042473475085010543862863431167839727393977819087154451613891026475563672924796593646373372569610472244554166275359707265747116232574320670510712681603767828331745096256785298708877821704997022277581597229320884747880199929388292083416012581216250090211656513929556209191422490885028584202721737680381061797469326294621558612376395918563726100406004319673869299618315161358849283076269613873849296448277166571785391579025034452042648725895024927363689045319468367637591964232030834466655265599068791056528548793573950712291962612229122265002769777175535797944215588333395442721437907164939174016437325878048413638938117974716202760599789348690365936181026231361089909077703842088083288505680128630061236498073773660099024971358523889372097975720719214132253425597199291162213524897757183293579799178946282787717911016665194075544266680903383333875748404531497720880982507088255325838109278304120141894545231163496014609622314965303010952293648574179929201218178279929034115576280971816144578258907069848100618446082085839341049068668320538184157108156703185506983088616336332130206983333674551896195371881398620034454095789749337112985137656014062256222948430925944282601808846592580716334644735477165767898607854884607542771086742339809472697993468859013593465800836320238749374344348150473818342560634914243007659896810727216091579157131236544769777759261988876070271879436444493169440453452895127115010446236623148156034995971895492676666475788243740690874120593055828305857550646101529074437883822659403282310405703567095875848007127640560018339659390327881871630853465328824149605377318921174317171176341336203309515513669285258862010977824951988876494960867860447173789898083301350682164839926604424710367729929866750887546760781079802806767120674348237348984291545119533876802296656299521329980324190234172672586389563349394649765799920624679829559037482552529205799895641735501166118341153918584896160992667058846053055648939738305751786294737530626530850615916044917980384037154661057184518770192364412501487139101820788949099399950535893014016022333850156251233361254205163436443377336838445073275535374215843533961384969335786764361324398682301680670819278854868782839106321864651001209249814793588297739520071443126422113702131499033038617375238155263092022471182803286504631630642369656193875848454614220709007825084862589931439053348946640647179026644360385423329445200893265823036961449105405720682252378255035965804119189539663071460039347177798797019634165067179272658928760652094311399786955323270920822861017204534830077692758881541672965802156165974782915161665313012058943675544823274315640482842959628609612802583569270007794174821860453734419914404777587725644077172372779126273087099608858830819266127003387226863149611390293223344773929940840160267106769729167349943811870853963651238789496769736554061462612858385447639180857323587315406859549571439062706634869143464858682352650916137690044723396194037984711256161808609023287260366959027499522762995596410694137810450018460444779462944803674369351464176768075167083643735763844697924182696247965551498162846484983731706799629689871087918514677389018361336054882948696077115695069509550818773622601513480994148925193856439981698813137875725415268118013057024248564870468234689213207113768835403890082955427374116929401375787524665426976436974173859842812837665952829958640500445385008461131417896980532250755959207103638504373103517851761855951977077575127015424408539364547972505941158109733020549197741495313206931965602571130849386589464769828897385320412065526705330407908288036157824390974191552161383287933006314174062772770447698002611299807884996899823454770032366307913198198029655305189188895596554728981444204669527841802456734383597965442009435907917614118857589298635584704412196542015816850479822204280040499206313113969860116520677968355626839222413708612704893516925990471893158089129568607457555666294668373931580287865618831211063470303585439375162164796486255430118008493485279106567982686653267405494599861369387418712181139449678764791575426486128043249334468426493421436565435439902646753218162798806275150504205503141541476948987934871558234006998283879743446735757184251119041127334212080596762879096630935727353082729450693819597171679500767270435024643277602497694716027701740358360648013674254436146944839231159448347015665600442199531818090409891349686424253070439110503674334374238384304991371411551538038296291216605048369573781656115365156125623601529280605560417364422713709489247350766399884555970488133839358912816890976191087294708942949532540953254063906828536493869740982576028037582676843658883244763767424421559158012157368737220748621977150114735562946359358795647780153275689841512654986664080941640952277161996681317934492401349788705966415144809587732401208567692752118240305585397862134615636090243160050036684196269576980279076524401235881600895680963394070532219553633130901523130924972224716180801768546144479833676755936333138550064440438478191557658627992078445699064377933292624494234203218812834468906355708246278153566359901091398751144634130507832972459519287137192239956274046693852959132941080355011894534291950886881620576624288694704057891142256066045338690835923114456399145072231077911314125242494331447063266745628746655417507575402333424799818925827010578076904577595419986535426087342446824473037742692960250866995405978644755234154626179117314542492149278859316598813618852741053202583848907801617447215608196079858459817703707772868369066498073719771658187547965292990021682341721408692117215260699479272486107446546779861300608790400437667300487081661319136860697910932401913076328307880223202485877230311729406474057347481925012137045708797898929721573515180450140409554089282878681593504217477327395151678618315772957393349249862634623725311905840609373498674054606087142231581790455914366810680916878664035014579455408338093999970984029310613417812740541029292606569348587187221540090056831253524703096886402345699397858738029874877715995993663273900597851410599339378418271096436425032661715342957974696034805075309476225281656021710307475878605406009975089080075789774736526755631596926639014087142167255236529043484680714293296385503936158679871323586103848843238867811335239710373083321446982808295940391732949185422168335254104719440874416677767831651212228262557542432939525845365891978285314201249162026201510972728105056279331435656819582643819337828010779289967973481958714810000587641774183193251643310542745528176593568561538312536061572471079524487667591575874277505014321695258169111440429909276679784473780464855290506523837747847400872505350321627109912349252281833469791393611162948868932726001132181596145506125898884864962378866875239721292441196197666721265762786986986505627635349177897006476271022295472051313145658047926052103168573499869612888124992360549540127800691411006631897352499252007657932720109093011763936710883838694732487047420988434326009910545461216946960527648753033025280052977519031691208899082804181679388289786987650740964002164356493275941288154612074074723830644081685057828925793395245793489491709170291529148776857819124209898583481202440719754935843700698753567590999954336585112141484436053238008021161213243052279524189100427505994904867472138421432389733879300627578314132738446364255321621154173005388753794607984444673074912041466935656224774270708524663827957680260108060097659237697168545711407940916217025737821541803970959490201693211092736606718808796281126061478568509267396021999302962758658034274591749589937866753390155666774276865490514518703081367954464848804800592300087355453893633382489867688215484450824758665209480877777479256556335168652708402862182196719210374840409905255932251065727995778823559576818146442771265930823550597827972880615891382074088770644011297101699851430023891464690922611943041617730263326432993439999361920698312193533027908060466377580614010505364468167944592556696008051796450277674136735906443831905130093162409237489761102197544967555560504027319400758128328867487708510553488125173210364970978230075732549352042111905185665667761897078572617473871018874028216213689658961512045189737077996614426868212404410321191572267598755279923221202387837660190067844602950109311178499731719612248988106723764222443330587337181286891474728651019955641461856064885055748664119695886009915401373446283551663739847359277457604921456316523254766073472096709939375921369587540744703324325626534444514073829835641197635698502045333064426489484341069996667821799158642590602860183004611451224847120641057979525808270078331422959626953214457846150924276964129448027527135441133319608192847053548383466810595408707521872866405253000489476836839030176941732379859671337346485984713768089724716481849755537594941253277585671923894698008360626621536280701733177490198523744034288906073072758767399785082384506722198900237565121634540072810278670701992031825759327650056045504398399334174716559619332555781890312524877573217809095992977975824475888853301798763469974487170229885509028901017595098347702900657800028232424313544846314840518433644939540447480932582860204585850480098807346715160714667005236799497464389574627393519839148421107335984644735877162000729024852987528945459238813140052643947265808353154397270855871470178454276360679639679901757309640718348044811418969434386714267288522990006169149157579971448766300422044447849217250987526590840223089845901077185710617595028253711977737305860278936297557476311328995990876543006659330050032342641027072549120950673475773035599103288848246710804330555987537584604840458469809720488477660248510078259405494283019505037883405778007442705205153070138223317879671168109529985273884429282684455997851433790518936522734949649085005335942666915856055026744382217391061213134552864632165652506214086375018362658575835720179816044689685590737420773361171857580920699958092588463197422692779766943168200018613280421897804823396980890764300858547490670910882829844939507290284014560731141084306273349739274860374763539992391615798611197692087413972956801317430124546844383526893721486830287382281872065368641399031106107951248569058586580134965918549651150973348028776194635867840785156897817665489097065047768724823436524162046075715115125908679315116220174290492306730650314951519094388411881803162616941497373763633028128836804491604281581613753434999568482037819747617694740961073824222737369900909155591600131435817206893145128807971593615015111159993324712177995200265384752450418680329086483245057598776330415891504771560993318525045166668261115951296842604054001460428819694239259700113277842741844119772578764555167631086660946800719990586330664394686071620063475694249643415062043598808738927397170509151448335589775622012685551597390700745403277146757555845586419007681842057188040274067389716117716357768310137629488105000870304313004494930941577767955512292288776620081617143755679261166635084642291743369791150054555027074625293339710940800032503677949025882281492350336335958688427456429097456887833550490889665715202287398810308268456552510269186363584394921213971054295304811793910267861884895323388270560549831368775665640772566263562624348729014350147960700228399018107161621445204239519366790805627750141436055524406077415567332800015493962960713669069679891908304359712998747126407105346468722205974988901975931221626530202739677798402874832264795230338711377776882755193518550960739816318875853771881129184429177407421771772856728145204261058603755476034024205576837662779146462797998806368987583483560587858269076224372812604678974596809163981973237361320430137922812046625708528182149722357726540093324519413408960764518066557636536072071134032344748988184418042706999213786010934858793199874592032239389271463593685100358960998670615422705314464616318139972576234982402314795403463079986938189586859231831010083110227733521398811187465958087263728881752309774350595128945975684644190460676983273822486619790833297624911453921881366530403343960763301219289566053687691460271267381427697255919950079230660887059898552291781975433574867272030759912136114229714012220759454868612680644537031361936782003824683907401932160070769445134462129603709258885922554292615892540692614619442513607794175649046232030478370439521114067431112080057488928312828439198752989327186026506174970672133598932928121773283328136635226101240634949977043648351392772934325396170544840780946823341975242332823444664316600718516668017641060612613911964700086311763461065882877328776963405992647540138205882554543493862156067869722757778710295419266164913921697624276848471805791824312530752406983851638179385409578342581525071478957925784974312202211591842277995042884873055482629087998706137843129346056580363439609504581407818514075838712701394853274056797595969630389425083576413740783842005442658444200461486567691099682965575789963508570738337822850454369839459339580692021220657625440608187976085549495622676872848868947735798925628109096643057019763787991621975422681988756090682121373599555261567438500947246182928209395791292674278666513454163917948107589171997582966861115092640393442998417275894180989201238560785922386290484867616938909172219879282289326177493687653464903487077750784372343215896287746110964398171361106969693569820060646769669616785866240261708769715129347432581569988604671766761485573091723745368318440709348538879936300994834718970411503446651299475003633210139627119796180467867328417214186931465111255201812626425760585567049750888211308680833673618685498495168514212470410762998356375606281256004583367254865906243993343991215650047973982492298770685240061493688763832040719962837567897712473181885457280139486211116851778309539361908884007063589129753781435191168752373551629399995523563298475912560717423070707033088715686378131011408331553998589560748098672129589928326827959070193383895590359896148995783658155416206796302522093670566624240570920972412145069537602252743010699829935642545214716890370510739633821009752395485999948876470701919051191716060048911101323819179256343774303146240589267474755435138008022450247519290721175268428966742500685901186213447504045199420631652089339570143011184148106516361164053671952224916514601535401173966780207960034273312946516186812418972278778782057927119896215765785252429642649719150011844390569336273820283661561001401213173856662931565087167816883935461912593231623058346705864875144734491596080585195130370133304466102141783230177152644585553689891899744074974660363705525985374130151244637363811706872582024341430576874610509923534220865747348319565938823500698533217513236771984348540293390503901296855599579905762725207534545732519626248835089700917544617476306312057269628715099448914085588849401018095301935775402913782590688658405519695869881135889441377586058611122481544715090934082805769311470215430429537357256558338267679447211887362484604623067123311255036929012018200591872061301697816963784854685385515561047040467054118436676645065551751235729056252469472169354719993362158216018214578168642624117002159979215426010482710672691949649255433035342519182849017084751696242725497280316912778709655157107913804496778509830662384357487839602541166565767887354840265747055775858291923526020670749438438681566027330446581274095626295256867889839187326032571425351558526786972384831940355656267172676175159157550545913362240590063879107692315334020931552258263868397913926317081219282663481366191623334503302048948291450654669875948924647096335874277531610013215437894210494576289551423616080005061707760708599125803012255468865518550242893456433601443901438138769468091527114189112355446758864796571038946252110137972306248121719049287095163561079402481373426796442256336999466919827914666644453215240710171026414700979504530316510189815846976420814251394722378684779672336946060016017927099084015158433181951861600834896897210069794447903089909521020703088800159242134328759463477697049046106119256890104181292247127861113837197219572862914588688706252403137787547023889355734265384203815355575196444749802443316206650351242737342946674052941661267098258344383882309315654338310290167332932481794289346544758251409206371837469305744552735866139252935037066407875041284628729141347202990546108508423517689142314222006090424471346317881712071011607721636075893381286449278936631578141870276979580551877684925348792624021528975746430531780443292876388762079486821202768774555421992977590500493849909454723592907934502646321756528650413558172495386368005345274358948038736993134691397926796425104048392565752752881907215644170220782035712776744676898989509500794537983842995371346203232978121428340618699802726028653880305264526559037083843926572567311350764763615831033980209878283150242085629129914130776911118672023850595579315719671905909889047084629653465494432007393299763742294940111869465918594015718332333672436998134633730634514767484647830436877533010965981069132587030755750172787521917609961282666246136847152393623087994152128119464693227996373369751719647566443757940413865449730300103014116516470498417211895428105180660703013078622012877218684001579246509925237713548594632853143569067872535330250263687353345390406937103889334062492591941204569789325336483441261868847490493383456774361909556547491577251310268136922719653715129873831871813474667219939360080528657281400780143932525161825342361685516016643010224063912202419255621009110247031964536957910377013499445941287933330115859841261045944881977030586893719991271044027855514712668250165193560638786858001320756380917233822040241552792670362836540271531794004097293901956867401778504729895494352975440342339895429024943314000345742620960714994669074590006568666257340442335265722166190928801640058511739053110817311779527046307973106869781037264327901393803176100017490872081345880471572550868715300849684007513617359701391924822756026168559107543210186814486706985026997864304621857186891930017469982646552243802713412698067773603364156084669682645239029202011371082203186903034971786025837126729548117115835574625840883011376472900964943348530751591472276318160649808707796337464717594044977045426292003513668860197127582739156669852716176943471400321100332613398953612387404333785777044191068791397035527063046598794818171878693985793799423508831964845892366578956068823825013975294929826647225124709022417348907781770949526126388455631859616942710164059983861737277679929642373141983468167835412804801632497932885730197855473029469724706792699862975597366431058676727451657897108311539725159567685576559686903745288833444707322162040473535425700614606115087781160947139418663901427061270076194019968027894416616256915980626848247467755381052296784363639512513179362190798293265626872052739333138655811696782473142603380377863463764608134422402273510558597961987470654263732493525593916549710676607069801355599497339736009714317794500222978931056895016759347522217951849758156418950570908822690236295643259657873995353160947783863230900768611062806161452845811663234438982333982459937756157303090234464069925211710086299898284838877236123051736129659794185503286128672651008890103918513507612615912334290930279097441428948809682163151920147002067115591131918780695166961581664889612922948016859357724780997693497156226508489284397511788324709728296475654099577463729098225631586655292728877921086147107188137319538260424825443259007983222917440815500038139232434814541872159929942040969092732499370972921257225434146749369919527595461643908864149343934943266653876575528949029227239325716620749281731419544479117563160178558689483282277298021531881685266732418676085964500083544629346064661882875102393251086873724607374283553431508483430175198764228339147638316480282756864119447085100114484704809890944472536327199039853429802030646730948819235945047605962287985722388818640110991091582294553750400327538720764927573344198249663884630429594732686060548691038484697876721510309661039523155111383403873901605553089356146833209979239487487028050893461053205172044546122050811810292465924457680863540614156354315848445306881472051415189137827778534598488549089034070875198405194030700813336062739613311282815781960183779256481872465498175572965893605566283592067290429525135761605857205279490642611971036936421455845606931144097108466625467964445635188870418847500783535744032629506348406288454418138904559644019830910603827793779063589376455397593298978828062238858629467085077781419082159130695855590357904649809908121890063313082187673142830323294765098780595567070792860375272722026631355751954287517878897395029201797298980098419923760462964154654185680478119190985520193056299668120261707081822453667951466163429403491725650562095353040676420407809734181306308452410220435615487562306475923180076316468044449832424996734605141790110954701801484022363798795338229740944846438254816421000617868564610002051227097307143422608223555922706785320939167933489497280213443613770918682074802411286319178730608236921560869206435694380302487680854182139611540350550831967499193532095080954564776421964760943023506327921542959261093730815828710420895805887392183861053281965804498396571754973182571635479757837935374866094740297705814278010570495621249081963588712454593954454639226086020905273942514474808297805225616565286985391322766033542176296864872660188679780014935006135431741478200351061255441814944651579714212461886752228981210293030470556306847917586377639968580700618229820706159643570151356774137845785864476391288397546127216669686331842859216087655115203958850835038863366533089591700457631696553626028641909959240115576068811090841822019593805561684983608838498660883968759612919687725121971355117105673544221961143830175497970878869210369600425176156326575942716156088351034422025263833959650565543007378431164195855098561745686521315785167149323535764700716219777162653050415820524023591411429278321978087691304960188099176508371640054141459968411232755097373709000943078465124002981870849889951264627612250232636779783801236784564339839806232579793018537443404460267505159418982807085651391890155354544090276679924432003047835080101372388019467159583156323703819319134538086621071902049437613510978176821705732576204404472172476844698070239348966577331450272585527845985748428768447603818105596776909247727334125141381283326148298023882527286374447775986526004713736179772597190941413499706097030048970078906736275816755364057028175502024203635828570996135749496007940085276196107065488368850906303665665804749248453935966205974190925853193519905528661357832382341546059985403082618163834324508901872852593817554040208446840586150698811670244972550366780293948926168455491439837244096150580855933679984628560624671955005173030356870137081939871692146263937694396253540312785740072388681657924722761608347254631456294322630702895065429360129300015810898651904978256951431104203400424335180009349282057228526502830512815204516344112696373573659620633250104932081243947050467646860818887917897162605621828047984130007122691063408741807673948002908349766653008580040248627377222859189506628010532050172705346273942616020462669955277394352542242676665519526039612554514592447974047787014964170634619086258422120111219055327622088466414395954676225267005365203563644037597219380351534320878994455681009760131582311484317263539263778574682340724049121907312192448829055756013607770926847797596466287062895750252916293674170691292850030727146333160754307920396017315445970287430203591131064768296933289629921202869276422757984701607725925392427109466229476745847716667016618255586067968122398973138693214405315581388800840036431262436221473650025341357118461301612762237459356691516476758909334523966896383967446315552068552773173023268958893640516578936729013878671440530846916144024908449658850519929225159690661480683867831503433648566275909590709696340365108239549164308584786796419207787277795414808268051460167678963639820686761004972414824238681446464323334335938065640885708146834971297310271853859341225999100621193836951475692803837126204035494999299734929197637341214537742206694470561049158400252646140246703007038394710732747127681840697526622531502932825479846561001842876658239544825457774454342697547102162925454089931561275266199236226983949295315410597897714805242837379445783039880921292660995671143362253349664260428860316966635477430085967476679548484165907115134205335583464715090572721045700472955275448329980759222935493698708493912652124210375822451273881706369653956024223893996882526069294983118631787767296937502908584295645733186919187421989303521690549867980681305253929895025573078348911407335461573356579129774384711781045849006904061037104983800491956430225812651665717699359894540254458902186997999393630953729367123206394040553763985210114871812708126827234678422422091540055687888217382326783177058969089399661258968428639660190889982298022000058891996986474949184992710236085466994121866745010508157291651354435217523424496476434715192805262908288757858578516050314617299224638561039046385818257738429714473844927629265253503569905354113812565269519635799336839082903357532040575505132834615680488231403168217056282200902266945482288581026324440678887294536643675813578788766452319644541301398340350023791685412910377417564140960159942050140608256303303067618731488739435524520654081075054729416706400475885026232478062447723879260720544041699089033679379728737505179610079956356404425124996814520436114668339215346293406552981433792386520797871352554830901259765600913219787823839136367069106154435104341635491605141561882181858372946026169802783817891007352960143077450452585780932159239844994664167044964550031689970605276186160135317263604821463023868860864111601139059680497644122092064848446023372944316927979059972917678435306529701349164865846771861589735902173282644128976894792009011712089985474266984835031533831582078674719809421840508449963283002254962144445152370599124468624675034633060467475180003381757495518048127331119138074099839194045445091894199637795085712223262680076392647072680940966681277763315622821002884052293638042582335808692339435735363598635515035195962297618234348483864808232876129870969724715973028578115991530207403041577135911688488854817105244713489429941227843437984665336569215041125393507800420259134668296566635453071514639464725242313567724980331653697885038802026901600152051895292308227842542345802652148952565821564214095607023647447935170661736662414282349656049024119163992773232029004875124727959666374345159734766721928126193317890566699416024253373666824744729100305935943973193612918524917951318281513573577705822007887653216719888714331059699623026581327402735019276722386940395872223432353924897111927948720698797963645996184219037413066638944551588674174888989049399468660015345002460522630755634064399914036412798062782801513512370782772032435200737811151883761344303590763444770665419632578306365803329459951593784743553373123255813469220447706340736026555884348465059480450508632234375261687238125346051371529454882360126589709354953839247294303259326096088738805644773690794987599526415457793715727251608778868045577373408882729470818283399798976639132025230937103488467244240896024569907165295209230388086286123358021716996010454071379452501981059930666729187891442192261805050723784486111439170111182637561485987103813768072057549477073470165322327092840002262320146617854069549070600404512930846617692943809172276662431193986344358325377484788970072394199668532440044580910838031827611282758841243690550705439729922861259023210225448771953401784370580783147515356866384392667356212786383750566246084373743396670499862178865438763951393713198606827760033162340793297623536411074309536723598745705128098923451906804480229151408379969987796614080992802283354618209575385143307694570238173312143855762870622672064362014578217272547113765504020677284810550821367209799340526148191530428551059625360896224196260928801766503430520234005980507910712265967363630690074810446914371604292420722053760652056438748285065445626631270398718155261750685682214854028944752251655771116198782382278985502926109179073491852178830128075325071155079395180622569396598325601728753772923168023174122035188424251957566762790725720746287043420301634661776444359160609578186544119965426735365564761473510132128467107739290826421110060110190921847682194703266073014013064448223317394679251370101735578407750195641902409235771273299538049135370178373391167378168740678396087546231938272126773576500432468671856435388157253555159377772704878558317080022618004992737073986949577625327278020431263881553555878089086137141031518684721391233195969952074590161565383779063316848869379457843852541961324880875993406077741281923713304619256624370567716343704078089363263339331493864520177841152775247603855425639289215976794805935335379190865625042484033995714257102855648878271327315139681758746061016906599644823082816105942686081443790114647285383144422087198843894533626370112392769385615432582172333586170503904104515419657961096171697362684835608430440660274676126518531559699851243227289109962563859717911963736388402324373888561735140009380174063469334630845019333028182344341853259192510809810726573179179940501882650936229575705490592330966772992347132855994902881140768547628813244227772098124902839574249967610995919115734058733540915658677737646348264656300023301450992774081390593763484880086039754705808395344603147489728647030049232951718951744843965840573490189061380397601004285768978217078628242382762520360336926013641256178771616399604727523216455266685333304066530364674039389863858165657031931869154144337632738713323295784104962685236960030952359954520619275895641131345588694562137478340324613223225066638110009136323729804244352457157483668253127621043432706797294366097110786584341999072262461248976233016043844381485244466979593217863307802652481320202909670409121378913078249763971293202082050920088832259377232149735316588123525358067987153981152883010760134846714608827789310669927944240360591518139111854424350340776692138565681491362830104622070591211296661253251350595988127775241385498829343615126623724801429943120179410180064315017856754653831278369614464094580073035312177032021362484748157169045628930992757159429280996140321792417797988265833104446370787163429579664990453165769023408942503575839942972307063205903040697748273340592616779053361078930416372328972100619893753597972415626995462420933249790524199522231741102776350353828284137456419183268110174488533578178848523015196109051074559658773433344774498961643130408612676623970187920930150190811581104952534585941852489334608884364147150677264570986054787621578158499511610423860586927497060180059256854176416395304877160097322923064719807989657517923943976525670260493722751227948901367122487295204762408417381147097091816716972500525276796224729909819515370358325938720530508271601870594321161614702626864487987550436250055267356949459936187785263892238517606385136627288635728170436750165822902581698357392603488193423390614846187241023650580502450491043084123271039381305697118051357040893256823868075945988331077143741602859262651971090530450850230092030486995438596180309955911613147944343453711900260649318775243900754075864891933124431261858079198395606937736691152680474981027611741792660247211584350722802545108833408942908849196820364576568697965614319933347453039714484253696105314120718718094128224654193706824872828678940895883791779730579376188710333338549782345581508583245811138108560575582955908458288547632274317082552690020237205331192256683122886304272988645863278282878765484599093207022853000575483546290017100966192043313961876500785472380839972369613978522892548687423165461786955600754501123045762254483067416559102452846844740338270231948882517746660132844701193393155814010044769350060356130689592032310424064571581237594510449419829058391474802862933628596557891748572904252311217105397125672247000265578071314421476944856376940784616829973713192223837691792461126042394854154988970123629019407989538438502770352846500849045164843150592499845066884439558223090108361301671805051644870756540946632292000345784531739431184383582881979115570002753795545284147055149781242193560201255985181450139718651037597232566757275191610285531005742088493633030165575962455497131377050118530580747112337126773241809935155187640364135825067527600217164532557420855418465164116654850668978292736569157653357343273802913546197386427100334336665268109663830108435564216400926199146165471532151868975483193826729751229891323665769001582962711585194984466867429347205713041341364770383571333585507448854749138944719037791537614029780936964364705765667922431309252831902553233967080719282436833604267003247225304571676831884030965403718900609602628557783605695990486412332055187179628719589332025838537904062937684715197360380820230414527220590953622609574269333918847519853636238673113895169478085665506496386334665881392833409536131554987097250010470339022932489784270417096390297306367873434727783609354074457905649908935180594071849297329377186056566192659213213659914084810993259106704414177224664360826830905895897471447049472873229811022640289853119870122106139300720283368851021929466858691274685541258697840721950513502634965351320687184980338199997889701873799036290856391422741217746652870842510453192929977532431303995103086562815141265850017240257438311468688516736458191833017890703169311111040914753424474580507386511955417926719436038093613204295191542864153199287932486628533284574488747380095564585362823317028291006246082440729094551394166229525900673365099901969639135761834184066679387458068796375188891006331331698460375586652397210980550159855173684781426862666244902620526044352168534672143622925328455836493422319019844005083625880942703490811869197372161919286105669186976629559858272580337969607458237659635480364748537541611191016835574856330022607478992025740973569773385917393179167476562691833597353832712431982782601045830632338766896929173590319641623878991823894634696103918901287744009383317692936311128515281331322616312026102014378030948721843824416745872506465127148619939117929744688287891463164456030186784063430967230094559986556525549584686911788332460930376126413208566140915268706102999389530529464390344209010242445071380112797880131699401806790794104221831780529053882964799480875633685678698356782645608757168223902381228301036300451019737272827624212438234617332227051292401175258587541457753060983286041831589190643874641511359480183485731590379416743693124523353069019299568725023532680910998275023354666527750057370384902205693425821120096008686955524914459174779370840606299154857790300061282040443312226341616123793402875416530793689796233811841612273554788778400996643056852095783198479436958907857183750609929415263747053691454748779826665118801373387452914363727962679255075449801189768800894625017385073927884528100235805507825116791121945245436250430848547089384334493595687550378895445405135558163331363784862204739986541912978478599962990107518706417729044068859248498838517950778080153827797139254448637118336150615086506426032908783883061988328430798542055653627482364742071068735780941116735160550823391277378715415742582119645458759272175046587933905029103753284332461883650307857954077447249145017720239075346490007724211200362144635131517612362414291943995697838860103987738362524933800838678483838291487360307060685666064818154330329936779826810460691229930147665968528247761519630183147147438114211137201656212941701783441361464327655570131015539079924552761627667108400373417528068143430431343929066413910144600257750760861970315997184265109002309590787605589043449767508505539088258567751265371592415471015076408783364722567780317533155833691242788309034457146843440254479343992517302926060156565339835722757795182312619561119741612052699231132680007725517660677721887361154871667784021289184980659366590580541338899118829465718056484273429553455204866024493170217911401918245392504107511422786626344461443663885079887518622423565424524202607183056242218567788303736529701492848028786723271528006674692184834421530844505275401098097770841266370659547038523703986479708790296287927402385568221041072871161263723623221915560257064454977175914059231889784252028367967936567770296876519526685603656956454179147419721563548555379654859468455467978742231375629526883698008313880001731808883180857807296900330812264878167594826707923513156690623698624948658435482158927692901303257554491742100848366862861096932376517008726506664961974484201382084261352524362491999364346414264645421640884530916399514887624370617392059341650615574883991596908768452366271231041153219583697107913719266180915047426589284756910437757709185135944873280869222954523498211200909858390232116324255033764763532112588019085097170731599985138309638533610459405665391323090671694967623156672774853901760782426864327526573411591652629378755092454391919442443531894182325420019286163863126314787363921568556805471902035855099528753957117362760981636345116159263075911587323315052059519878244286888920235671191611837719447007658720130781257411184184557886311136744804696144422005071191448673074195885755438349871262720955700207745609288832651229065444859890693997007068436459958651739195611985961564745152050520720159812148092051060275871600993858723559346369530490904055428667144687717615244952192259865172858607640556617121169012795398328511910057171004184996214639003778552373620908089680277630256626284134665823962650033479199053105569619798129233958708526506890941117186084999551463286438428734372599306269497604076794254966487573818701083572790318201362923585444414258447644664211580377657497302784291734296479346789596674967544587764344244343683057646653389499881978911085910631918188007578915491902788305417975768540013522498861206439661853050255243863438690626738160677166265304408549066844561101521736745162351573908766728319825279457434988839083814930081427300136320975922482514864570956985902351201484747930720905557887626860841640810747997516974124122751496498331053993976805054815627045994777007647331084983178016960577394497930162115702390858496261249378798773756799582017483277650322169276882834632358786887537033180145554655156584148252641925281770602353701278618207689526760542990139760659922711853113262213635364026410646505831451598466677935223171137905875144805650063843251497746525667415738933513222222852882294903011342257403847212038910788891330876217072276156753001539265582051742196032775802263963948528212596815474745002309662380227180801817120752968648293607685983206534635087058220754918649831955554825186510136758143671060173402627844858405398832833288726144254899326640812699235945897969395816554298707069735805048191660299887301806364219472454098236570543726074009211238000792772071090060276025932097282434808014129263343414918908011362202132709999558536478699734792429790692188971113630597896011650726193544355611633990876554859698987915125076175119805609712088265754472295324058166517232340179355275730764849753947178485029132281363501555652713648863723175448259149142727383544239621672989215833630466768271758353919048332706838281696880367352678794631697586530265174371899232886816122983843221049793124907514777873421370366610042289873454076225632466215345729623545681653602775945145390945148003701876444651135685309566428818183454693646549767693360983362033104088182412112608740085634969880305697057959516049037841743146174227233475392484850964849993693545407187271346205752823739499209349616831811819742927907125726047920791705585522929488622618337238399962148866643048546785197857024522105417148028390539073545774625861136788801024256371856741035132219171058055968352048243980493771751408174914268087861295109076919480659433034465523728039229297745921964216579935579623846514248655221719485333382116201502144306257152416999260930324636660863655792124114397679557459002280543419576546117696463542681870428669583136776463150048541882348504463558590426207185086870126941919392585849608932515256868549746958416257630406320668559645831595368044319315821949468865237216152281790037296146873837985714935033708856374248635890618247032834111522334292661317091555849215021970042095211203995835969812778555961214095919245131277385051922572190850658852827467699248650946248069535623440718646709441867281031219814647274044777446830227254470812047936054432518168687440514100954921806417119171659690274946892427053207967131996202598271637452862905516453900670849850006163538565578545811792070984208609559941546553432333596418117715718326505383625880996869972449267812483430188406543497315516845397468345146220374671992207180688486945939487436554730672026732519123260440124398439101772909090911049698549119859801315450073138337881275541970930942627030581507186720970585111699555721988855260519600433405843572634905158001009812132231139943746891216121601620257034183430354799656478938524413152193934884452705300607708810838667189943643900080833076540148745444292169180819629641391183068836860026726034620608822483864458707810781812226233775047672405343546229169404186184411492054589746764109043513291921021008316072092226741222260569561455086442360975022051481486034848619084493416851695073076314749072390097797705059493498231907390645633800333043924015042106477891086896694032792439051634979655701120444908094143435143729650351709357817786224545663153130710830988067470282421893397899605141549896733557680185167210220585016666778218519531674538271686444935511468269992015816873740186297413161995251275079441499343785543715688347164593776881350265039799931792124166839328417148276317043483670693846333277531611078944427320949672684086356547158851072898045644489908380023891548079533550147121308035284252311335553942727129634641789606438819548745134760677493322996544159942779603218356247442760782527821963458198210718372830129728504827176909079979184891932489085048427391514490608526923045635699523530331991126085208159871466247413883948642595517798552518361811684866446496990165977449867837566302589331059820987314903830421987325892808401950174283484690834940724340995371337930406253699258394481005713257475398373212915523373096711485349673155370226098489551743668820340363873902510574327430357276406112588155499462020769659454836693722209779065718533415353430715257641892891822822712644265890586383067334524515811427598615255105617261957923895814201492582858873977639173948688325075975825519143296873789354815062085655740462562707429706620064655886575161872714302587119118460457024440838596327295833427667286754190744749857083330986787552423762809376138486585402862869469442537079849615864043899806983213430021208795948941425033957705656541549745043596260977870521148314957897625560574174000395041757997194830017861397038672940683609272407291928244858162650438907576781430783390785267697915681458256526886733930893586267333463508217296401697891454474151118152629596404118149195722821646786709117688919809981431789910298766861098294507752985261268694143746569353711697240477640629198463156071550491294927766603171054564396114721555097306956325985395916372916468419529820766217360857231779181376079992595802538131826084295283173000148551861254227627254160442692306080140469173806983518679634622266556651085846629689670147932079838920597185440189313433364496305651689067534652841879237792984628888059831648540858366172859610845114177386229948033600243138035798983803609739322113616728501620368986554931353878634721460869590877499556512133675931981139023399232046352965131199711798269110353836287374853170766084505443433502203383327543907873059061267680566400050149716405928350193460052493314886875867809695495056387783009004274554544720382024091103333317202690931127424489391962810910750542787464621747234311145205690162719805239778001878585311368534854304867293237341499318042156118662589168992233116130227876521076530653332450265646131636281263809380034579510449400081739079515448339977303389938470432203930888977641989726323748756525823921616648846990997645028457813170246
y5_pred[0, 0, 0]=np.float64(6.999999999971806)
y[0, 0, 0]=np.float64(7.0)
"When a measure becomes a target, it ceases to be a good measure" - Charles Goodhart
@online{Turok2025ARCAGI,
author = {Eitan Turok},
title = {A one-parameter model that gets 100% on ARC-AGI-2},
year = {2025},
url = {https://eitanturok.github.io/one-parameter-model/},
}
alpha = 0.9186525008673170697061215177743819472103574383504939864690954692792184358812098296063847317394708021665491910117472119056871470143410398692872752461892785029829514157709738923288994766865216570536672099485574178884250989741343121